[〜#〜]問題[〜#〜]
すべてのジョブのジョブ名に文字列LEVEL_X
が含まれているとすると、Xは1より大きい数値です。X= nのすべてのジョブがX = n-1
のすべてのジョブを監視し、それぞれがそれらは成功して終了します。そして、X = n
のジョブで、1分間隔で他のジョブを監視する必要があります。
まず第一に、それを行うための最良の方法を知りたいと思っています。第二に、小さなスクリプト、おそらくGROOVYを使用してsystem groovy script
で実行できるGroovyスクリプトで実装できるソリューションが必要です。プラグイン。
ヒントとコードスニペットは次のとおりです。
http://<jenkins-server>/script
にはGroovyScriptコンソールがあり、スクリプトのデバッグに役立ちます。すべてのジョブ名を出力するコードスニペット:
def hi = hudson.model.Hudson.instance
hi.getItems(hudson.model.Project).each {project ->
println(project.displayName)
}
LEVEL_n
からn
を抽出するコードスニペット(クロージャとして実装):
def level = { name ->
def ret = 0
name.eachMatch(~'LEVEL_([1-9]+[0-9*])', {ret = it[1].toInteger()})
return ret
}
最新のすべてのビルドのステータスを取得するコードスニペット:
def hi = hudson.model.Hudson.instance
hi.getItems(hudson.model.Project).each {project ->
println(project.lastBuild.result)
}
ビルドを開始する というメソッドへのリンク。
注:Matrixビルドを使用している場合は、状況が少し複雑になります。しかし、あなたがそうしない限り、これで十分なはずです。