Joa*_*ira 5 continuous-integration continuous-deployment jenkins jenkins-pipeline jenkins-2
我们希望使用 Jenkins 生成特定项目里程碑的发布/部署。当标签被推送到 Git 存储库时,是否可以触发 Jenkins 管道(在 Jenkinsfile 或 Groovy 脚本中定义)?
我们托管了一个私有的 Gitlab 服务器,因此 Github 解决方案不适用于我们的案例。
这是目前管道/多分支工作流程中非常缺乏的东西。在此处查看相关票证:https : //issues.jenkins-ci.org/browse/JENKINS-34395
如果您不反对使用发布分支而不是标签,您可能会发现这样做更容易。例如,如果您决定将所有以 开头的分支release-
都视为“发布分支”,则可以...
if( env.BRANCH_NAME.startsWith("release-") ) {
// groovy code on release goes here
}
Run Code Online (Sandbox Code Playgroud)
如果您需要使用后面的名称release-
,例如release-10.1
变成10.1
,只需创建一个像这样的变量......
if( env.BRANCH_NAME.startsWith("release-") ) {
def releaseName = env.BRANCH_NAME.drop(8)
}
Run Code Online (Sandbox Code Playgroud)
这两个可能都需要一些方法白名单才能正常工作。