簡體   English   中英

Jenkins 管道作業簽出更改功能分支

[英]Jenkins pipeline job checkout changed feature branch

我的 jenkins 管道中有以下階段來獲取項目的所有分支。 如果項目中的一個分支在更改的分支上發生了更改,我想觸發構建作業。

首先檢測更改的分支,然后簽出這個特定的分支(我知道從 bitbucket/github 到 jenkins 的 webhook 可以工作。)。

簽出項目中的所有分支:

    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 
    }

任何提示將不勝感激。 感謝幫助,

最好的祝願喬恩

我建議使用多分支管道。 這簡化了您想做的工作。 多分支管道跟蹤您的所有分支並僅構建已更改的分支。 您甚至可以過濾掉不需要構建的分支(例如功能分支)。

在此處輸入圖像描述

在此之后,您可以 select 相關分支。 您有多種選擇來執行此操作,現在我附上了一個示例。 如果分支不是所選分支列表的一部分,則管道將不會啟動。

在此處輸入圖像描述

在您的 Jenkinsfile 中,您只需編寫def scmVars = checkout scm 此命令將克隆存儲庫並簽出已更改的分支。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM