iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
DevOps

DevOps 萌新的 TeamCity 極速上手寶典系列 第 17

第十七天:TeamCity 通知機制

自從有了 TeamCity 後,很多原本需要人工操作的任務都可以交給 CI 主機做。因為它會在每一次發現變更的時候自動執行,一方面不會漏掉或忘了執行、另一方面在執行的時候也不會有流程或順序上的失誤(只要我們有設定正確)。更重要的是,隨著專案愈來愈大,建置任務會需要較長時間執行,所以不用在電腦前面等也能節省不少開發者的時間。

不過,每次開發者都還要自己記得回去 TeamCity 的 Web UI 上看結果,還是會花掉一點時間,而當建置任務是成功的時候,其實好像也沒有回去看結果的必要。是不是能讓 TeamCity 平時就安安靜靜的執行任務,等到有錯誤發生時,再主動通知我們就好?

TeamCity 通知機制

當然可以!TeamCity 內建通知(Notifier)機制,可以將建置的結果通過支援的頻道發送通知,目前內建支援以下這些通知機制:

  1. Email Notifier:提供一組 SMTP 主機的帳號密碼,TeamCity 就可以透過 Email 發送通知,這是預設的接收頻道。
  2. Slack Notifier:提供 Slack 的 Auth Token,TeamCity 就可以將通知推送到指定的 Slack 頻道。適合習慣使用 Slack 做通訊工具,也喜歡即時收到推播通知的團隊。
  3. IDE Notifier:TeamCity 可以與 IDE 整合,直接將建置結果顯示在 IDE 介面裡,方便開發者直接在 IDE 裡進行調查與除錯。這部份我們後續會再詳述。
  4. Jabber Notifier:TeamCity 可以透過 Jabber 通訊協定推播通知,不過現在用 Jabber 的服務好像愈來愈少了,比較少看到這樣的需求。
  5. Atom/RSS Feed Notifier:直接將 TeamCity 的建置結果匯整成 Atom/RSS。若是團隊在辦公室有「戰情室」的數據電視的話,可以直接將這個 Feed 顯示在面板上。

今天我們就針對最常使用的 Email Notifier 做重點介紹,其他 Notifier 的設定方式也大同小異,詳細的內容可以參考官方文件。

設定 Email 通知

今天我們就以 Email 通知做範例,帶著大家了解一下 TeamCity 裡的通知功能。首先需要設定一台 SMTP 主機給 TeamCity 發信使用(On-Premise 版才需要、Cloud 版可跳過這步),請先進入 Administration 頁,選擇左邊的 Email Notifier 進入設定頁。

在設定頁填入 SMTP host、port、發送 email、帳號、密碼等資訊後,可以用 Test connection 功能來測試發信功能。當然,假如想要客製化發送的信件內容也是可以的,細節可以參考 官方文件

設定通知規則

TeamCity 會自動套用預設的通知規則在群組上,當然,管理員可以依照管理需求增加群組訂閱規則,而每一個帳號也可以客製化自己的訂閱規則,非常彈性。

以群組管理來說,先到 Administration 底下的 Groups 設定,選擇 All Users 群組(或是您想更改設定的群組)。

選擇左邊側邊欄的 Notification Roles 選項,在 Email Notifier 分頁裡,可以針對你想訂閱(Watch)哪些專案(Project)的 Build Configuration 的哪些事件(Event)按下 Edit 連結做設定。

對個人帳號來說,先到 Administration 底下的 Users 設定,進入想要修改的帳號,選擇左邊側邊欄的 Notification Roles 選項,在 Email Notifier 分頁裡,可以看到因為群組設定而繼承的規則,也可以按下 Add new rule 按鈕來新增新的訂閱規則。

用 Build Features 觸發 Notification

TeamCity 可以依據建置任務的結果觸發不同的後續動作,這個功能叫 Build Feature。在 Build Feature 眾多的動作裡,其中一個就是 Notification。其實機制跟上面的 Notifier 類似,支援 Email 及 Slack 兩種通知頻道,可以將 Build 結果送到特定 Email 或 Slack 裡。

設定方式很簡單,首先進到 Shopping Cart 專案底下的 Build Configuration,選擇左邊側邊欄的 Build Features 設定,按一下右邊的 Add build feature 按鈕。這時會彈出一個設定視窗,選擇 Notifications,Notifier 選 Email Notifier、設定目標 Email 位置、勾選想要訂閱的事件後按 Save 就完成了。

小結

經過今天的介紹,我們知道如何客製化 TeamCity 的通知功能,就不用每次都要到 TeamCity 的 Web UI 看結果,而是等接到通知後再去看報表,又省下不少時間。不過,若是團隊不想被 Email 轟炸、或是用的不是 Slack 的話,有沒有什麼方式可以擴充 TeamCity 呢?我們明天來揭曉!

參考資料


上一篇
第十六天:在 TeamCity 上執行靜態分析
下一篇
第十八天:用 Plugin 擴充 TeamCity
系列文
DevOps 萌新的 TeamCity 極速上手寶典31

尚未有邦友留言

立即登入留言