Jenkins:如何在 git 标签上触发管道

标签 jenkins continuous-integration jenkins-pipeline continuous-deployment jenkins-2

我们希望使用 Jenkins 在特定项目里程碑上生成发布/部署。当标签推送到 Git 存储库时是否可以触发 Jenkins 管道(在 Jenkinsfile 或 Groovy 脚本中定义)?

我们托管一个私有(private) Gitlab 服务器,因此 Github 解决方案不适用于我们的案例。

最佳答案

这是目前管道/多分支工作流程中非常缺乏的东西。请参阅此处的票证:https://issues.jenkins-ci.org/browse/JENKINS-34395

如果您不反对使用发布分支而不是标签,您可能会发现这更容易。例如,如果您决定将所有以 release- 开头的分支视为“发布分支”,您可以...

if( env.BRANCH_NAME.startsWith("release-") ) {
 // groovy code on release goes here
}

如果您需要使用 release- 之后的名称,例如 release-10.1 变成 10.1,只需创建一个像这样的变量...

if( env.BRANCH_NAME.startsWith("release-") ) {
 def releaseName = env.BRANCH_NAME.drop(8)
}

这两种方法可能都需要某种方法白名单才能发挥作用。

关于Jenkins:如何在 git 标签上触发管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44003948/

相关文章:

jenkins - 如何在 jenkins 管道构建日志中禁用命令输出

git - 如果不是最新的,则防止 git push 发送整个 repo

Jenkins 管道确定分支是否用于 Bitbucket 拉取请求

jenkins - 如何在 Jenkins 脚本管道中设置多行参数化 cron 作业?

curl - 如何将脚本文件上传到 owncloud 共享链接文件夹?

java - 我的 Java 项目是否有任何自动指标收集器?

ios - 适用于 iOS 应用程序的 Azure DevOps 两个配置文件

maven - 如果步骤不稳定,Jenkins管道将失败

docker - 从Docker容器运行docker-compose

jenkins - 克隆 Bitbucket 存储库而不启动 ssh-agent