【问题标题】:Jenkins pipeline job checkout changed feature branchJenkins 管道作业结帐更改了功能分支
【发布时间】:2020-03-16 12:11:54
【问题描述】:

我的詹金斯管道中有以下阶段来获取项目的所有分支。 如果项目中的一个分支在更改的分支上发生了更改,我想触发构建作业。

首先检测更改的分支,然后检出这个特定的分支(我知道一个 webhook 来自 到 jenkins 的 bitbucket/github 可以。)。

签出项目中的所有分支:

    stage ("Code pull"){
        steps{
         checkout([
            $class: 'GitSCM', branches: [[name: '*/*']],
            extensions: [[$class: 'CleanCheckout']], 
            userRemoteConfigs: [[  credentialsId:'bitbucket', url: 'my_git_repo']] 
            ])

如果我新建一个类似的分支就可以了

        stage ("Code pull"){
        steps{
             git branch: "master",
             credentialsId: 'bitbucket',
             url: 'my_repo'
            }
    }

但我想在特定存储库中测试任何更改的分支。也许有一种方法可以遍历所有分支之类的东西:

 when { anyOf { branch 'feature-branch/*'; branch 'master' } }
    steps{
      ....git checkout the one with changes 
    }

【问题讨论】:

    标签: git jenkins build jenkins-pipeline


    【解决方案1】:

    我建议使用多分支管道。这简化了您想做的工作。多分支管道跟踪您的所有分支并仅构建已更改的分支。您甚至可以过滤掉不需要构建的分支(例如功能分支)。

    在此之后,您可以选择相关的分支。您有多种选择来执行此操作,现在我附上了一个示例。如果分支不是所选分支列表的一部分,则管道将不会启动。

    在你的 Jenkinsfile 中,你只需要写 def scmVars = checkout scm。此命令将克隆存储库并签出已更改的分支。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 2022-07-19
      • 1970-01-01
      • 2019-03-22
      • 2017-07-22
      相关资源
      最近更新 更多