Jenkins基于tag的构建
文章目录
- Jenkins参数化构建设置
- 设置gitlab tag
- 在工程中维护构建的版本
- 按指定tag的版本启动服务
Jenkins参数化构建设置
选择参数化构建:
在gradle构建之前,增加执行shell的步骤:
把新增的shell框挪到gradle构建之前,
最后保存
设置gitlab tag
这样在每次改了代码提交后,可以在新的时间点上设置新的tag。
在工程中维护构建的版本
gitlab上打的标签,在jenkins中执行构建时,可以从环境参数获取git参数传过来的信息,也就是这里的tag
参数:
build.gradle中获取环境参数:
ext.PROJECT_VERSION = System.getenv('tag')
docker-compose.yml中获取环境参数:
...
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。