如何為 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 解放