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。

相关推荐
宇钶宇夕9 小时前
CoDeSys入门实战一起学习(九):CoDeSys库文件实操指南——安装、调用与版本管理
运维·自动化·软件工程
叠叠乐10 小时前
移动家庭云电脑linux docker 容器登陆移动家庭云电脑
linux·运维·docker
I_Jln.10 小时前
Docker:快速构建、运行、管理应用的工具
运维·docker·容器
资料库0110 小时前
LVS、Nginx、HAProxy核心区别是什么?
运维·nginx·lvs
国科安芯10 小时前
尺寸约束下商业卫星编码器系统的抗辐照MCU性能边界研究
运维·单片机·嵌入式硬件·安全·安全威胁分析
馨谙10 小时前
Linux面试题----rpm,dnf,Application Streams,Modules软件存储库
linux·运维·服务器
a***592610 小时前
MobaXterm全能终端:高效运维实战指南
运维
数通工程师10 小时前
进阶指南:如何利用 SecureCRT 打造“一键式”自动化数据采集方案?
运维·网络·网络协议·tcp/ip·自动化·运维开发
小码吃趴菜10 小时前
守护进程及其编程流程
linux·运维·服务器
~黄夫人~10 小时前
Ansible自动化运维:快速入门,从 “批量化执行” 开始
运维·自动化·ansible