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。

相关推荐
Dyhamic26 分钟前
如何查看docker 镜像的sha256值
运维·docker·容器
xiaoxiongip66635 分钟前
国内外动态sk5
运维·服务器·网络·爬虫·网络协议·tcp/ip·http
极地星光42 分钟前
通过 GitLab API 实现 CHANGELOG.md 文件的自动化上传至指定分支
运维·git·自动化·gitlab
kka杰3 小时前
Linux 简易shell编写
linux·运维·服务器
YCyjs3 小时前
Kafka
运维·分布式·kafka
weixin_545032313 小时前
C 编译、 C++编译有什么不同?
运维·服务器
小乌龟不会飞3 小时前
【C++】检测TCP链接超时——时间轮组件设计
运维·服务器·c++·时间轮
天草二十六_简村人4 小时前
k8s部署jenkins集群时,使用ThinBackup进行定期备份
运维·ci/cd·容器·kubernetes·jenkins·devops
阿瑾06184 小时前
【Linux】简易日志系统
linux·运维·windows