Jenkins基于tag的构建

文章目录

Jenkins参数化构建设置

选择参数化构建:

在gradle构建之前,增加执行shell的步骤:

把新增的shell框挪到gradle构建之前,

最后保存

设置gitlab tag

这样在每次改了代码提交后,可以在新的时间点上设置新的tag。

在工程中维护构建的版本

gitlab上打的标签,在jenkins中执行构建时,可以从环境参数获取git参数传过来的信息,也就是这里的tag参数:

build.gradle中获取环境参数:

groovy 复制代码
ext.PROJECT_VERSION = System.getenv('tag')

docker-compose.yml中获取环境参数:

yaml 复制代码
...
services:
  hello:
    image: hello:${tag}
    ...

按指定tag的版本启动服务

当gradle的docker插件按tag打出版本后,要在目标服务器上启动相应版本的应用,这里需要在docker-compose up时指定一个tag相关的环境变量,而在jenkins服务器发送命令时,可以这样传递环境变量:

对于同一个tag,如果要更新功能,可以先在gitlab上删除tag,提交代码后重新再打相同的tag,再jenkins构建该tag,此时docker image prune -f会清理废弃的image。

相关推荐
无忧智库6 分钟前
国家级垂直行业大模型高质量语料库精炼与自动化标注底座建设方案(WORD)
运维·自动化
太多.梦想.完成18 分钟前
Linux系统无头浏览器pupteer截图出来中文乱码
linux·运维·服务器
猹叉叉(学习版)21 分钟前
【系统分析师_知识点整理】 14.系统运行与维护
运维·笔记·软考·系统分析师
竹之却1 小时前
【Minecraft】无法连接至服务器,登录失败:无效会话(请尝试重启游戏及启动器)
运维·服务器·游戏·我的世界·minecraft
源远流长jerry1 小时前
负载均衡详解
linux·运维·服务器·网络·tcp/ip·负载均衡
J2虾虾1 小时前
Linux 定时备份 MySQL 数据库(完整教程)
linux·运维·数据库
爱学习的程序媛1 小时前
Docker常用指令速查手册
运维·docker·容器
数据知道1 小时前
claw-code 源码分析:Transcript / Session Store——智能体「运行史」数据结构怎样才算可运维?
运维·数据结构·python·ai·claude code
4ever.ov01 小时前
仿muduo库one Thread one Loop式主从reactor模型高并发服务器项目日志
运维·服务器·c语言·c++·muduo