Skip to content

Instantly share code, notes, and snippets.

@uemuraj
Last active November 22, 2021 06:22
Show Gist options
  • Save uemuraj/781f0fca02448806db960898643c582d to your computer and use it in GitHub Desktop.
Save uemuraj/781f0fca02448806db960898643c582d to your computer and use it in GitHub Desktop.
Jenkins 用 Groovy Script をいくつかまとめ。
//
// スクリプトコンソールで使うスクリプトです。
// 指定されたビューにある、無効化されたジョブに関して以下の作業をします:
//
// * ワークスペースがあれば削除します
// * 最後の成功ビルドと安定ビルド以外を削除します
// * 実際に削除する行がコメントアウトしてあるので、一度、何が消えるか確認してから、コメントを外して再実行しましょう
//
def jenkins = Jenkins.instance
def view = jenkins.views.find { it.name == 'ビューの名前を書きます' }
view.items.each {
if (it.isDisabled()) {
println(it.name)
def workspace = it.workspace
if (workspace && workspace.exists()) {
println(workspace)
// !! workspace.deleteRecursive()
}
def successful = it.lastSuccessfulBuild
def stable = it.lastStableBuild
it.builds.each { build ->
if (build != successful && build != stable)
{
println(build)
// !! build.delete()
}
}
}
}
//
// コマンドラインで CLI と一緒に使うスクリプトです。
// スレイブがオンラインかどうかを返します:
//
// * 環境変数で JENKINS_URL が設定してあるとして、以下のように使います
//
// $ java -jar jenkins-cli.jar groovy slave.groovy slv01 slv02 slv03
// slv01
// slv03
//
// * オンライン状態のスレイブの名前だけが返ってきますので、スクリプトの for 文で良い感じです
//
// $ for s in $(java -jar jenkins-cli.jar groovy slave.groovy slv01 slv02 slv03)
// > do
// > echo $s
// > done
//
// * 引数なしの場合は定義されているスレイブすべてを対象にオンライン状態のものだけを返します
//
import jenkins.model.*
def slave = Jenkins.instance.slaves.each {
if ((args.length == 0 || args.contains(it.name)) && it.getComputer().isOnline()) {
println it.name
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment