Jenkins CLI (Jenkins Command Line Interface) クライアントを使用すると、コマンドラインから Jenkins サーバを操作することができるようになります。 例えば、Job の設定変更や、ビルドのトリガなどをコマンドラインから行うことができます。 また、Groovy のスクリプトを流し込んで Jenkins サーバ上で実行することも行えるため、Jenkins に対して行う作業のほとんどを自動化することができるようになっています。
CLI の実体は、Jenkins サーバからダウンロードできる jenkins-cli.jar
です。
このファイルは任意の Jenkins サーバからダウンロードできますが、一応バージョンの問題が発生しないように、操作対象としている Jenkins サーバからダウンロードするのがよいでしょう。
ローカルホストで Jenkins サーバを稼働しているのであれば、下記のアドレスからダウンロードできます。
http://localhost:8080/jnlpJars/jenkins-cli.jar
Jenkins CLI は、下記のようなフォーマットで使用します。
java -jar jenkins-cli.jar -s <Jenkinsサーバアドレス> <コマンド>
下記は、Jenkins CLI を使ってログイン、ヘルプの表示、ログアウトを実行する例です。
Jenkins CLI の各種コマンドを実行するには、最初に login
コマンドを使用して、Jenkins ユーザ名を指定してログインしておく必要があります。
$ java -jar jenkins-cli.jar -s http://localhost:8080 login --username yourname
Password: (指定した Jenkins ユーザのパスワードを入力)
$ java -jar jenkins-cli.jar -s http://localhost:8080 help
(CLI コマンドのヘルプが表示される)
$ java -jar jenkins-cli.jar -s http://localhost:8080 logout
接続時に Java の Exception が発生する場合は、Jenkins CLI のサイトでエラーメッセージを検索して対応しましょう。
Jenkins CLI コマンドを実行するときは、jenkins-cli.jar
ファイルを指定する必要があったり、Jenkins サーバのアドレスを指定する必要があったりして、そのままでは若干扱いにくいです。
下記のような方法で、Jenkins CLI を使いやすくすることができます。
環境変数 JENKINS_URL
に Jenkins サーバのアドレス(http://localhost:8080
など)を指定しておくことで、Jenkins CLI を使用するときに毎回 -s
オプションでアドレスを指定する必要がなくなります。
export JENKINS_URL=http://localhost:8080
下記は Windows のバッチファイルの例ですが、このファイルと jenkins-cli.jar
ファイルを同じディレクトリに入れて、そのディレクトリに PATH を通しておけば、どのディレクトリからでも Jenkins CLI コマンドを実行できるようになります。
@echo off
set jarfile="%~dp0%jenkins-cli.jar"
set url="http://localhost:8080"
java -jar %jarfile% -s %url% %*
ここでは、ローカルホスト上の Jenkins サーバにアクセスするためのコマンドだということを示すために、ファイル名に -localhost
というサフィックスを付けています。
このような命名規則にしておけば、複数の Jenkins サーバを扱っている場合にも対応できます。
C:\> jenkins-cli-localhost login --username yourname
C:\> jenkins-cli-localhost help
C:\> jenkins-cli-localhost logout