2017-08-15 143 views
2

我想讓我的Jenkins多分支管道作業避免觸發自身。作業進行提交是因爲它會增加版本文件並將其檢入源代碼控制,從而導致無限循環。如何避免Jenkins多分支管道作業觸發本身

在一個正常的工作中,我可以按照these instructions來避免這個循環(雖然它不是最乾淨的方式)。

該指令不適用於多分支管道(不存在'忽略來自某些用戶的提交'選項)。 Jenkins mulitbranch管道中有沒有辦法阻止自我觸發的提交?

+0

還不是一個確切的解決方案,但如果它幫助別人,我發現了兩種方法可以使這項工作。首先,我可以通過將「Property strategy」更改爲「命名分支獲取不同屬性」,然後在「Add property」下選擇「Suppress automatic SCM triggering」來禁用一組分支上的自動構建。其次,我能夠配置Bitbucket來抑制某些用戶的推送通知。通過這樣做,我可以抑制構建服務器用戶的構建,這與我鏈接的文章所用的方法相同。但是,我不知道其他回購是否支持這一點。 – Pace

回答

2

一種解決方法,如果使用GIT:

當碰撞的版本和提交,在使用特定的消息提交日誌例如:[GIT-版本凸點] - 植球的版本

SCM後簽出,檢查最後一次提交是否爲版本緩衝提交,如果是,則中止作業。

stage('Checkout') { 
    checkout scm 
    if (lastCommitIsBumpCommit()) { 
     currentBuild.result = 'ABORTED' 
     error('Last commit bumped the version, aborting the build to prevent a loop.') 
    } else { 
     echo('Last commit is not a bump commit, job continues as normal.') 
    } 
} 

private boolean lastCommitIsBumpCommit() { 
    lastCommit = sh([script: 'git log -1', returnStdout: true]) 
    if (lastCommit.contains("[git-version-bump]")) { 
     return true 
    } else { 
     return false 
    } 
} 
相關問題