58

Groovy システム スクリプトを使用する Jenkins の場合、ビルド キューと実行中のビルドのリストを簡単に検索して、いくつかの基準 (具体的には、いくつかの条件に一致するパラメーター) を検索し、それらを強制終了/キャンセルする方法はありますか?

これを行う方法を見つけることができないようですが、可能であるように思われます。

4

10 に答える 10

88

私は自分でテストしていませんが、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 リンク:

于 2012-09-11T05:41:58.397 に答える
9

コメントとして追加できませんでしたが、今日の最新のジェンキンでは、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) }
于 2015-06-09T08:08:29.327 に答える
3

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()  
}   
}  
于 2015-02-05T15:21:53.433 に答える
-2

ジョブ ビルド キューを制御するには、次のプラグインも使用できます: https://wiki.jenkins-ci.org/display/JENKINS/Block+queued+job+plugin

  • 定義されたターゲット プロジェクトの最後のビルドがビルド状態のときにジョブをブロックするには
  • 定義されたターゲット プロジェクトの最後のビルドの結果が得られたときにジョブをブロックするには
于 2015-06-14T08:18:21.907 に答える