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。

相关推荐
航Hang*23 分钟前
第二章:网络系统建设与运维(高级)—— IS-IS路由协议
运维·服务器·网络·笔记·智能路由器·ensp
翼龙云_cloud26 分钟前
腾讯云渠道商:如何在腾讯云服务器上搭建一个属于自己的网站或者论坛?
运维·服务器·云计算·腾讯云
安科瑞刘鸿鹏1729 分钟前
企业配电系统中开关柜“可视化运行管理”的实现路径
大数据·运维·网络·物联网
岁岁种桃花儿33 分钟前
Nginx高并发网站技术的实战篇
运维·nginx
liulilittle34 分钟前
Ubuntu挂在新云盘(Disk磁盘)
运维·服务器·ubuntu
sao.hk35 分钟前
ubuntu2404,vbox,全屏显示
linux·运维·服务器
危笑ioi35 分钟前
linux配置nfs在ubuntu22.04
linux·运维·服务器
东城绝神1 小时前
《Linux运维总结:Ubuntu 22.04配置chrony时间同步服务》
linux·运维·ubuntu·chrony
刘程佳1 小时前
Ubuntu 系统没有识别 Pixel 6 的 USB 设备权限
linux·运维·ubuntu
陈葛杰1 小时前
VMware 安装 Rocky Linux 9.6(Minimal 版)超详细图文教程|轻量 · 安全 · 生产级
linux·运维·服务器