はじめに
Jenkins CLIを利用してビルド表示名、説明を設定する方法について調べたので備忘録として投稿させていただきます。
やりたかったこと
- Jenkinsのビルド中に表示名、説明を更新する
- POST(curlコマンドなど)を利用せずに実現する
Jenkins CLIの配置場所
POST(curlコマンドなど)を利用せずにビルド表示名、説明を更新するためにJenkins CLIを利用しました。
Jenkins CLIはJENKINS_HOME配下のwar/WEB-INF/jenkins-cli.jar
に配置されてます。
http://<Jenkinsのアドレス:ポート>/cli
にアクセスして、Jenkins CLIページからDLすることも可能です。
Jenkins CLIページでは利用可能なコマンドのヘルプを閲覧することも可能です。
-sオプションについて
ヘルプなどでは-s
オプションでJenkinsのURLを指定してますが、Jenkinsの管理 > システムの設定 > Jenkinの位置 > Jenkins URL
が設定済みであれば省略可能です。
$ java -jar jenkins-cli.jar -s http://<Jenkinsのアドレス:ポート> help
$ java -jar jenkins-cli.jar help
コマンド
Jenkins CLIページにビルド表示名、説明の設定方法が記載されているので、これを参考にシェルスクリプトを設定します。
java -jar jenkins-cli.jar -s http://xxx.xxx.xxx.xxx/ set-build-display-name JOB BUILD# DISPLAYNAME
ビルドの名称を設定します。
JOB : Name of the job to build
BUILD# : Number of the build
DISPLAYNAME : DisplayName to be set. '-' to read from stdin.
java -jar jenkins-cli.jar -s http://xxx.xxx.xxx.xxx/ set-build-description JOB BUILD# DESCRIPTION
ビルドの説明を設定します。
JOB : Name of the job to build
BUILD# : Number of the build
DESCRIPTION : Description to be set. '=' to read from stdin.
シェルスクリプト
今回はビルドしているジョブ自身の表示名、説明を更新するので、ビルドから利用可能な環境変数
を利用して以下のようなシェルスクリプトを設定しました。
JENKINS_CLI=$JENKINS_HOME/war/WEB-INF/jenkins-cli.jar
java -jar $JENKINS_CLI set-build-display-name $JOB_NAME $BUILD_NUMBER "設定したいビルド表示名"
java -jar $JENKINS_CLI set-build-description $JOB_NAME $BUILD_NUMBER "設定したいビルド説明"
ビルドを実行するとビルド履歴
にシェルスクリプトで設定した表示名、説明が表示されるようになりました。