猫でもわかるWebプログラミング

試行錯誤しながらエンジニア(プログラマー)として働く猫のブログ。技術的な話や、働き方の話、読書録とか、試行錯誤している日常の話。

Jenkins pipeline でジョブが失敗したらSlackに通知する

f:id:yoshiki_utakata:20200702010238p:plain

バージョン

  • Jenkins 2.235.1
  • Slack Notification Plugin 2.40

プラグインのインストール

今回はこのプラグインをインストールします。

plugins.jenkins.io

Slack Notification Plugin というやつ

f:id:yoshiki_utakata:20200702144556p:plain

Slack の Jenkins integration を追加する

https://plugins.jenkins.io/slack/ に書いてあるとおり https://my.slack.com/services/new/jenkins-ci にアクセスしてJenkins CIのプラグインをSlackに追加。

token を覚えておく

Jenkins に Slack token の設定を追加

JenkinsのWeb UIから

  • Jenkinsの管理 > システムの設定 > Slack

Cretendial のところの「追加」をクリックして「Jenkins」を選択 *1

f:id:yoshiki_utakata:20200702145401p:plain

「種類」で「Secret text」を選択

  • Secret に先程の token を入れる
  • ID, 説明は分りやすければなんでも

f:id:yoshiki_utakata:20200702145518p:plain

Workspace は xxxx.slack.comxxxx の部分を入力。Credential で先程登録したのが選ばれていることを確認して保存。

f:id:yoshiki_utakata:20200702145713p:plain

Pipeline スクリプトの設定

こんな感じのコードを追加するだけ

slackSend(
  color: "#FF0000",
  message: "しっぱい",
)

失敗時に実行したいならこういう感じ

    post {
        failure {
            slackSend(
              color: "#FF0000",
              message: "しっぱい",
            )
        }
    }

パイプラインの書き方が調べてください。

*1:「Jenkins」は人によっては名前が違うかも。多分Jenkinsを実行しているOSユーザーの名前になる