Groovy システム スクリプトを使用する Jenkins の場合、ビルド キューと実行中のビルドのリストを簡単に検索して、いくつかの基準 (具体的には、いくつかの条件に一致するパラメーター) を検索し、それらを強制終了/キャンセルする方法はありますか?
これを行う方法を見つけることができないようですが、可能であるように思われます。
Groovy システム スクリプトを使用する Jenkins の場合、ビルド キューと実行中のビルドのリストを簡単に検索して、いくつかの基準 (具体的には、いくつかの条件に一致するパラメーター) を検索し、それらを強制終了/キャンセルする方法はありますか?
これを行う方法を見つけることができないようですが、可能であるように思われます。
私は自分でテストしていませんが、APIを見ると、次の方法で可能であるはずです。
import hudson.model.*
import jenkins.model.Jenkins
def q = Jenkins.instance.queue
q.items.findAll { it.task.name.startsWith('my') }.each { q.cancel(it.task) }
関連する API リンク:
コメントとして追加できませんでしたが、今日の最新のジェンキンでは、Andrey のスクリプト (素晴らしい) を機能させるには別のインポートが必要です。システム Groovy スクリプトとして実行します。
Jenkins はエラーを起こし、欠落しているクラスについて言及します。問題に言及した URL を含めました。
//import hudson.model.*
// per http://stackoverflow.com/questions/17429050/running-groovy-command-from-jenkins-using-groovy-script-plugin
// requires this now
import jenkins.model.Jenkins
def q = Jenkins.instance.queue
q.items.findAll { it.task.name.startsWith('my') }.each { q.cancel(it.task) }
jenkins groovy postbuild プラグインを使用します:
これは groovy スクリプトになると思います:
import hudson.model.*
def q = jenkins.model.Jenkins.getInstance().getQueue()
def items = q.getItems()
for (i=0;i<items.length;i++){
if(items[i].task.getName() == "job_name"){
items[i].doCancelQueue()
}
}
ジョブ ビルド キューを制御するには、次のプラグインも使用できます: https://wiki.jenkins-ci.org/display/JENKINS/Block+queued+job+plugin