概要
Jenkinsのビルドが終了した時にslackで通知したい
意外と簡単にできます
Jenkins側の設定をメインに記載するので、slack側のアプリ管理は省略します
ググったら結構記事でてきます
ので、「Jenkins CI」を設定済み前提で進めます
Jenkinsバージョン:2.270
Slack Notification Plugin:2.45
※Jenkinsとプラグインのバージョンが異なると動作しない可能性があります
1. プラグイン追加
まず最初に
Jenkinsの管理 > プラグインの管理 > 「利用可能」タブ
から「Slack Notification Plugin」を探してインストールしてください
再起動は不要だと思うので「install without restart」でインストール
2. スクリプト作成
Pipelineで作成します
適当にジョブ作ってPipelineScriptに下記を記述
node
{
SLACK_URL = "https://sample.slack.com/services/hooks/jenkins-ci/"
SLACK_TOKEN = "XXXXXXXXXXXXXXXXXXXXXXXX"
SLACK_CHANNEL = "sample"
MESSAGE = "sample"
stage ("slack")
{
slackSend(baseUrl: SLACK_URL, token: SLACK_TOKEN, channel: SLACK_CHANNEL, message: """Build Success: #${env.BUILD_NUMBER} ${env.JOB_NAME}\n${MESSAGE}""", color: "good")
}
}
定数は例として記載してるのでパラメータに出すなりして汎用的に使えるようにしてもいいかと思います
引数を1つずつ解説していくと
baseUrl
コード例の「sample.slack.com」の部分を通知を飛ばしたいslackのワークスペース名を指定してください
token
Jenkins CIに記載されてるトークンを指定してください
channel
通知を飛ばしたいチャンネル名を指定してください
message
通知のメッセージです
なんでもいいです
「\n」で改行できます
「@here
」とかでメンション付けれます
「@<XXXXX>
」で個人にメンション付けれます
「XXXXX」にはslackのメンバーIDを指定します
slackのメンバーIDはslackの個人のプロフィール「その他」から確認できます
color
通知時のカラー設定ができます
good,warning,dangerで状態のカラーを設定できます
#XXX
とかカラーコード指定もできます
ビルドの結果(成功失敗)でカラーを変えるとわかりやすいかと思います
他にも設定項目は色々あるので公式の方で確認してみてください
https://plugins.jenkins.io/slack/