2017-08-12 12 views
0

チームがマージ要求を使用してコードレビューを確実に行っています。 jenkinsをCIサーバーとして使用しています。同じブランチのジョブが保留中のジョブのクリーン・ジェンキン・キュー

あるブランチをレビューしているうちに、あるブランチに多くのコミットをプッシュします。また、ジーンズでは、コミットごとにビルドをトリガーします。

同じブランチに対して複数のジョブが検出された場合、jenkinsジョブキューを自動的にクリアする方法はありますか?直近の仕事をそのまま保つ?最新のコミットが確実に行われるようにします。

+0

あなたは[タグ:ジェンキンス-パイプライン]を使用していますか?これには「マイルストーン」のステップがあります。 – StephenKing

+0

私はそのプラグインを使用していません。この場合、マイルストーンのステップはどのように役立ちますか? –

+0

マイルストーンに達した以前のすべてのビルドをクリアします。 [docs](https://wiki.jenkins.io/display/JENKINS/Pipeline+Milestone+Step+Plugin)を参照してください。 – StephenKing

答えて

1

キューに別のジョブがあるかどうかを調べるためにいくつかのコードを使用して、キューをクリーニングしたり、現在のビルドを中止したりすることができます。ここ

がキュー

DEF branchName = build.environment.get( "GIT_BRANCH_NAME")をきれいにする例である

def buildNo = build.environment.get("BUILD_NUMBER") 

println "checking if need to clean the queue for" + branchName + " build  number : " + buildNo 

def q = Jenkins.instance.queue 
q.items.each { 
    println("${it.task.name}:") 
} 

q.items.findAll { it.task.name.startsWith(branchName) }.each { 
    q.cancel(it.task) 
} 
+0

どこでこのgroovyコードを追加できますか? –

+0

btw、このスクリプトは現在のジョブをキャンセルしませんか? –

+0

現在のジョブは引き続き実行され、キューのみがクリーニングされます。現在のジョブを中止する場合は、スクリプトを変更する必要があります。 ビルド・ステップを追加する必要があります:*システム・グルービスクリプト*を実行して、これをインストールしてください - https://wiki.jenkins.io/display/JENKINS/Groovy+plugin –

関連する問題