如何為 Slack 設定 Jenkins 通知 ?
讓 Slack 成為 CI 的訊息中心
Contents
當 Jenkins 的 job 執行失敗時,我們希望在 Slack 的 channel 能收到通知,如此可避免所有訊息都透過 Email,只有真正與人相關的訊息才使用 Email,讓 Slack 成為持續整合的訊息中心。
Version
macOS High Sierra 10.13.3
Docker for Mac 17.20.0-ce-mac49 (21995)
Jenkins 2.89.4
Slack 3.0.5
設定 Slack
新增 Channel

- 按下
Channels右側的+新增 channel

- Privacy : 設定為
Public或Privatechannel - Name : 設定 channel 名稱
- Purpose : channel 的功能描述,可以不輸入
- Send invites to : 設定 channel 成員,可以稍後再設定
- 按
Create Channel開始建立 channel

- 按
Got It!進入 channel

- 正式進入 channel,將來 Jenkins 訊息會傳進此 channel
新增 Notification

- 選擇右上方的
option - 選擇
Add an app
新增 Jenkins App

Slack 將開啟瀏覽器
- 稍微往下捲輸入
Jenkins - 選擇
Jenkins CI
新增 Configuration

- 按
Add Configuration加入 Jenkins CI
新增 Integration

- 按
Add Jenkins CI Integration正式加入整合 Jenkins
Slack 設定完成

- 介紹 Jenkins 設定流程
Slack 部分已經設定完成,接下來是 Jenkins 的設定
Slack 網頁先不要關閉,稍後會用到
設定 Jenkins
Manage Jenkins

- 左側選擇
Manage Jenkins - 右側選擇
Manage Plugins
安裝 Slack Plugin

- 選擇
Avaliabletab - 選擇
Slack Notification Plugin - 按
Download now and Install after restart
新增 Webhook

- 左側選擇
Manage Jenkins - 右側選擇
Configure System

在 Global Slack Notifier Settings 下設定
- Base URL : 貼一段 Slack 所提供的 URL
- Integration Token : 貼一段 Slack 所提供的 token
Q : 要貼什麼 Base URL 與 token 呢 ?

回到 Slack 最後的網頁往下捲到 Step 3
- 將
Base URL與Integration Token複製貼上
最後按 Save 存檔。
設定 Job

- 選擇要發 Slack 通知的 job
- 按
Configure設定

在 Jenkins 執行完 build 動作後,無論成功或失敗,將結果通知 Slack
- 選擇
Post-build Actions - 選擇
Add post-build action - 選擇
Slack Notification

選擇希望 Jenkins 通知 Slack 的動作 :
- 選擇
Notify Failure、Notify Success與Notify Unstable
建議不用選擇太多 action,
success確認 Jenkins 還活著,Failure與Unstable確認 CI 失敗即可

新增一個 Git commit,就可發現 Slack 收到 Jenkins 測試成功 綠燈 的訊息。
Conclusion
- Slack 提供了一個不錯的 CI 訊息平台,讓訊息從 Email 解放