A4 WORKS Official BLOG

A4 WORKS オフィシャルブログ

Jenkinsでビルド失敗時に任意のスクリプトを実行する

   

いろいろなプラグインを試したのですが、ビルド失敗の時だけ任意の処理を実行しようとした時に、コレというのが見つけらず意外と苦戦したのでメモ。

ビルド後の処理で任意のシェルスクリプトを実行するプラグイン

プラグイン「Post build task」をインストールします。

APIを使ってビルドステータスを取得する

${BUILD_URL}api/json?tree=result と記述することで、今回のビルドの実行結果を取得するURLとなります。

このURLにリクエストを投げ結果を取得します。

結果は {“result”:”SUCCESS”} や {“result”:”FAILURE”}  と取得できます。

JenkinsにID、PW認証をかけている場合の対処

APIにリクエストを送信した場合に、そのままだとログイン画面が表示されてしまうので、認証用のパラメータをオプション指定してリクエストします。

ホーム > Jenkinsの管理 > ユーザーの管理 >ユーザーを選択 >左メニュー:設定

と進むとAPIトークンという項目がありますので、「APIトークンの表示…」を選択します。

jenkins_api_token

ここで表示されるユーザーIDとAPIトークンをパラメータとして利用します。

wget –auth-no-challenge –http-user=ユーザーID –http-password=APIトークン ${BUILD_URL}api/json?tree=result

APIトークンを使ったリクエストの公式ドキュメント

ビルド成功・失敗の結果を取得して任意のシェルスクリプトを実行する

これらを組み合わせてPost build taskのスクリプトに以下のように設定します。

あとは、SCCESS、FAILUREの部分に実施したい任意のコードを追加してもらえればOKです。

外部のチャット系WebAPIを呼び出したり、物理機器を操作したりお好みでどうぞ!

 - jenkins , , ,

STINGERレクタングル大

STINGERレクタングル大

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  関連記事

jenkins_logo
CentOSにJenkinsをインストールしてproxyで運用

最近はAWS(Amazon Linux)を使う事が多いですが、久々にCentOS …