category

Jenkins→Slack通知スクリプトの例

JenkinsのSlack Notificationプラグインを利用することで、PipelineスクリプトからSlackに通知を飛ばせます(他のプラグイン同様、設定画面からインストール可能)。

Jenkinsからのslack通知受信例

以下のように例外処理と組み合わせることで、成功/失敗の表現を分かりやすく切り分けられます。

node {
    try {
            stage 'Checkout build repo'
            checkout scm

            stage 'Stage 1'
            sh 'make'
            sh 'make install'

            slackSend color: "good", message: "Build Completed = ${env.JOB_NAME} ${env.BUILD_NUMBER}"
    } catch(err) {
            slackSend color: "danger", message: "Build Failed = ${env.JOB_NAME} ${env.BUILD_NUMBER}: ${err}"
            throw(err)
    } finally {
    }
}

SlackのコマンドはslackSendだけです。
colorについては、#439EF0といった16進表記の指定のほか、good / warning / danger の3種類が事前定義されています。

slackSendのその他のオプションは、公式ドキュメントにリファレンスがあります。

なお、Slackではなく例外処理の話題になりますが、上記のようにcatch{}節に処理を記述するとエラー処理できたと見なされて正常終了するので、最後にthrow(err)で再度エラーを発生させています。