コマンドラインからJenkinsのジョブを実行する
コマンドラインからJenkinsのジョブを実行する方法を二つ。
wget
ジョブの実行ボタンをクリックしたときのURLにwgetやcURL経由でアクセスします。認証をかけている場合にはBasic認証でユーザ名/パスワードを渡します。
$ wget http://yourserver.com/job/<ジョブ>/build?delay=0sec --http-user=<ユーザ名> --http-passwd=<パスワード>
Jenkins CLI
Jenkins CLIは、http://yourserver.com/jnlpJars/jenkins-cli.jarからダウンロードできます。
ジョブを実行する場合には、以下のコマンドを実行します。"-s"オプションでジョブが完了するまで待ちます。URLは環境変数JENKINS_URLで指定することもできます。
java -jar jenkins-cli.jar http://yourserver.com build --username <ユーザー名> --password <パスワード> -s <ジョブ>
上の例では認証情報を引数として渡していますが、明示的にログインコマンドを実行してCredentialを取得することもできます(ユーザのホームにある.hudosnフォルダにcli-redentialsというファイルが作成されます)。
java -jar jenkins-cli.jar http://yourserver.com login --username <ユーザー名> --password <パスワード> java -jar jenkins-cli.jar http://yourserver.com build -s <ジョブ> ... java -jar jenkins-cli.jar http://yourserver.com logout
ただし、現状ではActiveDirectoryとCrowdと連携して認証を行っている場合には、Jenkins CLIは正常に動作しないようです(Crowdについては私も確認しました)。詳細は参考にあげたJIRAのチケットを参照してください。
でも、よく考えたらあまり使い道がないかも。人間が実行するならWebから実行する方が簡単ですし、Jenkinsの場合にはcronやタスクから実行するという用途もないです。