- Published on
Jenkins 發送 Slack 通知建置相關訊息
如果 Jenkins 是自動化建置,除非我們一直在上面,不然它如果建置失敗的話,我們怎麼可以在第一時間知道。我們就可以利用 Slack,在建置的過程中即時發送通知,讓我們可以不管在那裡都可以接到訊息。
在 Slack 加入 Jenkins APP
- 到 Slack 的 APPS (網址是
https://<你的slack workspace>.slack.com/apps),畫面上搜尋jenkins,點選Jenkins CI

- 在 Jenkins CI 的畫面,點選左邊的
Add Configuration新增一個新的設定

- 來到設定頁面,如果要把訊息送到原有的 channel 就選擇原有的,在這裡我自新增一個新的 channel,點選
create a new channel

- 輸入 channel 的名稱 (注意要全小寫),然後點選
Create Channel建立

- 回到畫面會顯示已經建立完成,然後 channel 也變成剛才建立的那一個,點選
Add Jenkins CI integration建立

- 一開始畫面上會有如何在 Jenkins 使用的流程教學,如果不看的話就直接點選
close,如果是第一次設定的話,可以看看,寫的還蠻詳細的

- 在 Step 2 裡面有跟你說 Jenkins 要安裝什麼套件 (雖然現在套件名稱已經改了)
- 在 Step 3 有兩個資料要先 copy 起來之後需要使用,
Base URL和Integration Token

- 如果關掉之後也是可以在按
expand打開的

- 頁面的下半部份的設定在這個測試沒有要修改,之後有需要修改再回來改就好了
- 按
Save Settings就完成設定了

Jenkins 安裝 Slack 外掛
- 來到 Jenkins 的
外掛程式管理,搜尋Slack Notification,然後點選安裝

設定 Slack 外掛
- 來到 Jenkins 的
組態設定畫面,到Global Slack Notifiter Settings區塊

- 先新增 Token,按
Integration Token Credential ID右邊的Add,加入一個 Jenkins 的 Credential

- 類型選擇
Secret text,然後把前面在網頁上面 copy 的Integration Token放在Secret的欄位,然後在Description給它一個可以適別的名稱

- 新增之後回到畫面上,填入前面在網頁上面 copy 的
Base URL,然後選擇剛才新增的slack token,填入 channel id#jenkinstest,按下Test Connection測試,如果下面顯示Success就表示 Jenkins 可以連接到 Slack 了

- 你的 Slack channel 也會收到一筆測試訊息

專案設定
- 來到專案設定畫面,新增一個
建置後動作,選擇Slack Notifications

- 設定
Slack Notifications的區塊- 最上面的正什麼情況需要送訊息,建議一開始可以先全部勾選,之後在來調整
- 再來是要不要包含測試相關訊息和要不要有相關的人員和標題
- 最下面的區域和剛才在 Jenkins 的組態設定是一樣的,也就是說,如果不設定就吃 Jenkins 的設定,如果設定的話就吃專案的

- 儲存之後手動建置測試,就可以看到 Slack 的 channel 有收到相關的訊息了

