2017-08-15 12 views
2

ジェンキンスのマルチブランチパイプラインジョブは、自分自身をトリガーするのを避けたいと思います。ジョブは、バージョンファイルをインクリメントし、無限ループを引き起こすソースコントロールにチェックインするので、コミットします。Jenkinsマルチブランチパイプラインジョブのトリガー自体を避ける方法

通常の仕事では、このループを回避するためにthese instructionsに従うことができます(ただし、最もクリーンな方法ではありません)。

命令はマルチブランチパイプラインでは機能しません(「特定のユーザーからのコミットを無視する」オプションはありません)。 Jenkins mulitbranchパイプラインで自己トリガコミットを防ぐ方法はありますか?

+0

実際には決定的な解決策ではありませんが、他の人に役立つ場合は、私がこの作業を行うための2つの方法を見つけました。まず、 'Property strategy'を' Named branches get different properties'に変更し、 'Add property'の下で' Suppress automatic SCM triggering'を選択することで、一連のブランチに対して自動ビルドを無効にすることができます。次に、Bitbucketを設定して、特定のユーザーのプッシュ通知を抑制することができました。これを行うことで、ビルドサーバーユーザーのビルドを抑制することができます。これは、リンク先の記事で使用されているのと同じアプローチです。しかし、私は他のreposがこれをサポートしているかどうかわかりません。 – Pace

答えて

2

回避策GIT使用する場合:

バージョンバンピング及びコミットに特定のメッセージを使用してコミットログ例:[gitのバージョンバンプ] - SCM後バージョン

をバンピングcheckout、最後のコミットがバージョンバンプコミットであったかどうかをチェックし、そうであれば、ジョブを中止します。

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 
    } 
} 
関連する問題