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。

相关推荐
馨谙1 天前
Ansible 多 Play 编写与模块使用全解析
运维·ansible
虾..1 天前
Linux 多线程,线程分离
linux·运维·服务器
云飞云共享云桌面1 天前
推荐一些适合10个SolidWorks设计共享算力的服务器硬件配置
运维·服务器·前端·数据库·人工智能
DO_Community1 天前
如何选择对象存储?Amazon S3 与 DigitalOcean Spaces 深度解析
运维·服务器·ai·aws·对象存储·云服务·金融科技
ZCXZ12385296a1 天前
物流自动化环境下的纸箱检测与识别_YOLO13-SEG-REPVGGOREPA模型应用
运维·自动化
2401_832298101 天前
安卓证书在线生成,一键签名・安全高效
运维
蜡笔小炘1 天前
LVS -- 部署DR模式集群案例
运维·服务器·lvs
成都极云科技1 天前
成都GPU服务器托管 - 成都服务器idc托管
运维·服务器
AZ996ZA1 天前
自学linux的二十天【DNS 服务从入门到实战】
linux·运维·服务器
这个软件需要设计一下1 天前
ninedata安装磁盘不足问题解决
运维·bug