GitLab配合Slack做CI/CD

2020/08/15

 

建立Slack Webhook

先建立起Slack Webhhok

準備用於後續的GitLab CI做通知

 

建立Slack App

若已經有建立好的Slack APP可略過此步驟

https://api.slack.com/messaging/webhooks

 

設定Incoming Webhooks

開啟Slack App選擇左方的Incoming Webhooks

slack2.png

 

點選下方的Add New Webhook to Workspace按鈕建立

slack3.png

 

一個Webhook通知的標的是一個channel

因此建立的時候要選擇一個channel

slack4.png

 

設定SSH KEY

在我的專案需求會在CI/CD某些情況需要透過ssh協定做一些事情

所以在.gitlab-ci.yml設定中

我需要在該container中設定ssh key(可參考官方文件:SSH keys when using the Docker executor)

因為ssh key算是機敏資料

因此我們可以透過CI/CD設定中的Varaibles來從外部帶入ssh key

而不是直接將ssh key寫進.gitlab-ci.yml

3.png

 

建立一個SSH_PRIVATE_KEY變數

4.png

 

設定Slack notifications Integrations

選擇Setttings > Integrations > Slack notifications

5.png

 

接著將前面設定Slack Webhook貼到Webhook欄位

另外如果希望pipeline無論成功或失敗都可以發slack通知

要將Notify only broken pipelines的選項取消勾選

6.png

 

按下儲存後先前設定的Slack channel就會收到測試的通知

 

測試Pipeline Slack通知

在.gitlab-ci.yml指定的branch中做git push

接著就會看到GitLab Pipelines已經跑起來

 

7.png

8.png

 

Slack channel收到通知的話

就大功告成了

9.png