GitLab配合Slack做CI/CD
建立Slack Webhook
先建立起Slack Webhhok
準備用於後續的GitLab CI做通知
建立Slack App
若已經有建立好的Slack APP可略過此步驟
https://api.slack.com/messaging/webhooks
設定Incoming Webhooks
開啟Slack App選擇左方的Incoming Webhooks
點選下方的Add New Webhook to Workspace按鈕建立
一個Webhook通知的標的是一個channel
因此建立的時候要選擇一個channel
設定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
建立一個SSH_PRIVATE_KEY變數
設定Slack notifications Integrations
選擇Setttings > Integrations > Slack notifications
接著將前面設定Slack Webhook貼到Webhook欄位
另外如果希望pipeline無論成功或失敗都可以發slack通知
要將Notify only broken pipelines的選項取消勾選
按下儲存後先前設定的Slack channel就會收到測試的通知
測試Pipeline Slack通知
在.gitlab-ci.yml指定的branch中做git push
接著就會看到GitLab Pipelines已經跑起來
Slack channel收到通知的話
就大功告成了