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。

相关推荐
noravinsc9 分钟前
lustre设置用户配额
linux·运维·服务器·文件系统·lustre
jinhuazhe20131 小时前
Linux切换到Jenkins用户解决Jenkins Host key verification failed
运维·jenkins
GISer_Jing1 小时前
浏览器自动化领域的MCP
运维·前端·自动化
一一Null1 小时前
Linux-局域网构建+VLAN 划分 + 端口 MAC-IP 绑定 + 静态 DHCP
linux·运维·服务器·网络·tcp/ip
喜欢你,还有大家2 小时前
实训十一——网络通信原理
运维·服务器·网络
BlueBirdssh2 小时前
IPv6
linux·运维·服务器
努力努力再努力wz2 小时前
【c++深入系列】:万字详解list(附模拟实现的list源码)
运维·c语言·开发语言·数据结构·c++·list
阿巴~阿巴~2 小时前
从函数调用到进程通信:Linux下的多语言协作实践
linux·运维·服务器
Connie14512 小时前
Arthas使用排查内存
运维
爱喝酸奶的桃酥3 小时前
LVS:高性能负载均衡利器
linux·运维·lvs