コマンドでjenkinsジョブの無効/有効を切り替え
コマンドライン上からjenkinsジョブの無効/有効を切り替えたかったためメモ。
jenkinsにはjenkins cliなるスクリプトから呼び出すためのcliクライアントが用意されているとのこと。
参考URL①(日本語版):https://wiki.jenkins-ci.org/display/JA/Jenkins+CLI
参考URL②(英語版) :https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI
cliの取得
まずはcliの取得から。
私はtrac lightningに付属されているjenkinsを使用しています。デフォルトの設定だとjenkinsのURLは「http://localhost/jenkins」です。
①を参考に「http://localhost/jenkins/cli」からjenkins.cli.jarを取得します。
jenkins cliのコマンド一覧
②を参考にコマンド一覧を取得。
私の環境だと下記のようになります。
java.exe -jar jenkins-cli.jar -s http://localhost/jenkins help
実行するとコマンドとその使い方の一覧を取得できます。
下記はコマンドjenkins-cliのコマンド一覧。
コマンド | 内容 |
---|---|
build | ジョブをビルドします。オプションで完了するまで待ちます。 |
cancel-quiet-down | "quite-down"コマンドの処理をキャンセルします。 |
clear-queue | ビルドキューをクリアします。 |
connect-node | ノードと再接続します。 |
console | Retrievesconsoleoutputofabuild |
create-job | 標準入力をConfigXMLとして読み込み、ジョブを新規に作成します。 |
delete-builds | ビルドを削除します。 |
delete-job | ジョブを削除します。 |
delete-node | ノードを削除します。 |
disable-job | ジョブを無効化します。 |
disconnect-node | ノードとの接続を切断します。 |
enable-job | ジョブを有効化します。 |
get-job | ジョブ定義XMLを標準出力に出力します。 |
groovy | 指定したGroovyスクリプトを実行します。 |
groovysh | 対話式のGroovyシェルを起動します。 |
help | 利用可能なコマンドの一覧を表示します。 |
install-plugin | ファイル、URLおよびアップデートセンターからプラグインをインストールします。 |
install-tool | ツールの自動インストールを実行し、インストール先を表示します。 |
keep-build | ビルドを保存するようにマークします。 |
list-changes | 指定したビルドの変更履歴を表示します。 |
list-jobs | 指定したビューかItemGroupのすべてのジョブを一覧表示します。 |
list-plugins | インストール済みのプラグインを一覧表示します。 |
login | 認証情報を保存して、認証情報なしにコマンドを実行できるようにします。 |
logout | loginコマンドで保存した認証情報を削除します。 |
標準入力の内容をメールとして送信します。 | |
offline-node | "online-node"コマンドが実行されるまで、ビルドを実行するノードの使用を一時的に停止します。 |
online-node | 直前に実行した"online-node"コマンドを取り消し、ビルドを実行するノードの使用を再開します。 |
quiet-down | Jenkinsは再起動に向けて終了処理を実施中です。ビルドを開始しないでください。 |
reload-configuration | メモリにあるすべてのデータを破棄して、ファイルから再ロードします。設定ファイルを直接修正した場合に役に立ちます。 |
restart | Jenkinsを再起動します。 |
safe-restart | Jenkinsを安全に再起動します。 |
safe-shutdown | Jenkinsを終了モードに変更しビルドが完了後に、シャットダウンします。 |
session-id | OutputsthesessionID,whichchangeseverytimeJenkinsrestarts |
set-build-display-name | ビルドの名称を設定します。 |
set-build-result | 現在のビルドの結果を設定します。ビルド中に呼び出された場合のみ動作します。 |
shutdown | Jenkinsサーバーを直ちにシャットダウンします。 |
update-job | 標準入力からの情報でジョブ定義XMLを更新します。get-jobコマンドの正反対のことを行います。 |
version | バージョンを表示します。 |
wait-node-offline | ノードがオフラインになるのを待ちます。 |
wait-node-online | ノードがオンラインになるのを待ちます。 |
who-am-i | 認証情報を表示します。 |
コマンドでjenkinsジョブの無効/有効を切り替え
プロジェクトのメンバが多い環境でjenkinsを業務に取り入れている場合、jenkinsジョブが実行しているスクリプトの更新作業は慎重に行う必要があるかと思います。さながらそれはリリース作業と同様といえるでしょう。
更新作業の流れはざっくりとしてますが下記のような流れになるかと思います。
1.スクリプト更新対象のjenkinsジョブを無効化
2.スクリプトを更新(svnからのエクスポート、gitからpullなど)
3.スクリプト更新対象のjenkinsジョブを無効化
コマンドは下記のとおりです。
ジョブの無効化
java.exe -jar jenkins-cli.jar -s http://localhost/jenkins disable-job "ジョブ名"
ジョブの有効化
java.exe -jar jenkins-cli.jar -s http://localhost/jenkins enable-job "ジョブ名"