我们希望使用 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/