首页 > 解决方案 > Git分支上的Jenkins管道多触发器选项

问题描述

我的要求是在创建发布分支后立即触发 CI/CD 管道,对发布分支进行提交和合并。我的发布分支的名称会因发布而异,例如release/v1. 0, release/v1. 1 or release/v2.0等。

由于安全方面的原因,我们不允许使用 web 钩子作为 git 触发选项,而是使用 Jenkins 的 SCM poll (every minute) 选项来触发管道。

我们在这里面临的问题是下面的 Jenkins 管道片段未能指向release/v1.0git checkout。每当创建或合并或提交发布分支时,我们的管道都应该触发。

stage ('Git Checkout')
{
    git(url: "${GIT_URL}",credentialsId: "${GIT_CREDENTIALS_ID}",branch: 'release/*')       
}

标签: gitjenkinscontinuous-integrationjenkins-pipeline

解决方案


这可以通过在 Jenkins 管道中使用低于 Git Stage 来解决。

    stage ('GIT CHECKOUT')
    {
        checkout poll:true, scm: ([$class: 'GitSCM',
        branches: [[name: 'origin/release/*']],
        userRemoteConfigs: [[credentialsId: "${GIT_CREDENTIALS_ID}", url: "${GIT_URL}"]]
        ])
        
    }

推荐阅读