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。

相关推荐
Harvy_没救了1 天前
【Linux】循环语句
linux·运维
小比特_蓝光1 天前
Linux----进程概念
linux·运维·服务器
大卡片1 天前
Linux进程基础
linux·运维·服务器
.柒宇.1 天前
docker容器技术实战
运维·docker·容器
优化Henry1 天前
LTE-TDD小区光路闪断故障处理典型案例
运维·网络·5g·信息与通信
ShineWinsu1 天前
对于Linux:“一切皆文件“以及缓冲区的解析
linux·运维·c++·面试·笔试·缓冲区·一切皆文件
倔强的胖蚂蚁1 天前
信创企业级 openEuler 24 部署 docker-ce 全指南
运维·docker·云原生·容器
Crazy CodeCrafter1 天前
服装实体店现在还适合转电商吗?
大数据·运维·人工智能·经验分享·自动化·开源软件
西西弟1 天前
网络编程基础之TCP循环服务器
运维·服务器·网络·网络协议·tcp/ip
sanshanjianke1 天前
一种零成本的服务器磁盘空间扩展方法——内网磁盘映射到公网服务器的两种方案
运维·服务器