Jenkins基于tag的构建

Jenkins参数化构建设置

选择参数化构建:

在这里插入图片描述

在这里插入图片描述

在gradle构建之前,增加执行shell的步骤:

在这里插入图片描述

把新增的shell框挪到gradle构建之前,

在这里插入图片描述

最后保存

设置gitlab tag

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这样在每次改了代码提交后,可以在新的时间点上设置新的tag。

在工程中维护构建的版本

gitlab上打的标签,在jenkins中执行构建时,可以从环境参数获取git参数传过来的信息,也就是这里的tag参数:

build.gradle中获取环境参数:

ext.PROJECT_VERSION = System.getenv('tag')

docker-compose.yml中获取环境参数:

...
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。

### Jenkins 中基于 Tag 的回滚操作 在实际应用中,当新版本部署出现问题时,可能需要快速恢复到之前的稳定状态。为了实现这一目标,在每次成功构建并部署之后给该次构建打上 Git 标签是一种常见做法[^1]。 #### 使用标签进行回滚的具体方法如下: - **配置 Jenkins 构建任务** 确保 Jenkins 工作流已经设置好可以从仓库获取指定标签下的源代码。这通常涉及到配置 Jenkins Job 来读取环境变量或参数化构建过程中的输入字段,允许用户选择特定的 Git 标签作为构建的基础[^2]。 对于从 GitLab 或其他支持标签功能的版本控制系统拉取代码的情况,可以通过定义 Jenkinsfile 或者直接在 Web UI 上设定相应的选项来选取想要使用的标签[^4]。 ```groovy pipeline { agent any parameters { string(name: 'TAG_NAME', defaultValue: '', description: 'Enter the git tag you want to build') } stages { stage('Checkout') { steps { script { checkout([$class: 'GitSCM', branches: [[name: "refs/tags/${params.TAG_NAME}"]], userRemoteConfigs: [[url: 'https://your-repo-url.git']] ]) } } } // 更多阶段... } } ``` 上述脚本展示了如何让 Jenkins 接受一个名为 `TAG_NAME` 的字符串类型的参数,并据此检出对应的 Git 标签版本用于后续构建流程[^3]。 一旦完成了以上准备工作,则只需启动带有适当标签名称的新一轮构建即可完成所谓的“回滚”。实际上就是重新执行一次旧版程序的编译打包以及部署动作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java小卷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值