開發(fā)團(tuán)隊(duì)的預(yù)期目標(biāo)是每天能產(chǎn)生可交付的代碼萨脑,對于持續(xù)集成的目標(biāo)是每一次的構(gòu)建能產(chǎn)生可執(zhí)行的程序。一旦構(gòu)建失敗饺饭,開發(fā)團(tuán)隊(duì)需要立即響應(yīng)渤早,修正,以解決延時(shí)帶來的浪費(fèi)砰奕。
所以蛛芥,構(gòu)建失敗的及時(shí)通知變得異常重要,如何能及時(shí)通知committer军援,是由誰導(dǎo)致的構(gòu)建失敗仅淑。這些工作如果你的團(tuán)隊(duì)還在人工執(zhí)行,那么可以閱讀下下面的方法胸哥,利用工具涯竟,提高效率。
很多工具為Jenkins開發(fā)了通知工具空厌,點(diǎn)擊查看Plugins庐船,本文介紹其中的三種工具:郵件通知,簡聊嘲更,Slack
郵件通知
郵件通知是Jenkins的默認(rèn)通知工具筐钟,可以直接配置。
1. 系統(tǒng)管理設(shè)置
Jenkins系統(tǒng)管理->系統(tǒng)設(shè)置
如圖赋朦,使用一個(gè)已有的郵箱(比如163或者qq)作為郵件通知郵箱篓冲,配置SMTP服務(wù)器,郵箱的用戶名和密碼宠哄。
用戶默認(rèn)郵件后綴是填寫公司郵箱后綴壹将,在郵件通知時(shí)會自動將后綴增加至svn提交者的用戶名后面。
配置完成后可以勾選
通過發(fā)送測試郵件測試配置
如果出現(xiàn)“Email was successfully sent”毛嫉,代表配置沒有問題诽俯。
2. Job配置
在需要郵件通知的Job設(shè)置里面增加“構(gòu)建后操作步驟”->選擇E-mail Notification
郵件通知配置可以選擇在每一次構(gòu)建成功或 不成功,需要群發(fā)郵件的收件人信息承粤。
但是如果你群發(fā)的收件人列表比較多暴区,或者每次通知的人不一樣闯团,比如每次只想通知導(dǎo)致構(gòu)建失敗的那個(gè)人(即最后一次上傳代碼的人),那么簡單的E-mail Notification肯定不能滿足你的要求颜启,需要加入下面這個(gè)插件Email extension plugin偷俭。
3. Email extension plugin
以上基本郵件通知已配置完成,Jenkins還有一個(gè)plugin用于編輯郵件通知的相關(guān)配置Email_Extension_Plugin缰盏。
“系統(tǒng)設(shè)置”中選擇“插件管理”涌萤,搜索Email extension plugin,直接安裝口猜。安裝成功后负溪,在Job設(shè)置里面增加構(gòu)建后步驟選擇添加“Editable Email Notification”
下面這些設(shè)置以“$”開頭的全局變量可以在Jenkins->系統(tǒng)管理->系統(tǒng)設(shè)置->Extended E-mail Notification中進(jìn)行設(shè)置。
有些內(nèi)容可能會被下面的高級設(shè)置覆蓋济炎,比如Default Content川抡。
如果希望分別針對構(gòu)建成功和構(gòu)建失敗發(fā)送不同的郵件通知,可以點(diǎn)擊Advanced Setting须尚。注意Triggers的設(shè)置崖堤,可以配置多種Triggers(觸發(fā)器),F(xiàn)ailure-Any耐床,F(xiàn)ailure-1st(第一次構(gòu)建失斆茚!),Success撩轰,F(xiàn)ixed胯甩,Abort等等。觸發(fā)器的種類很多堪嫂,可以根據(jù)實(shí)際需要選擇偎箫。每種觸發(fā)器可以根據(jù)需要選擇Send To,比如Failure-Any可以add upstream Committers皆串,Requestor等等淹办。
每一個(gè)Trigger可以單獨(dú)在高級中配置Default Subject,Default Content恶复,Recipient List等等娇唯,所以在觸發(fā)器中的這個(gè)設(shè)置是可以覆蓋上面的基礎(chǔ)設(shè)置的。
Email extension plugin的詳細(xì)版本可參考官網(wǎng)寂玲。
簡聊
在Jenkins中選擇簡聊插件,jianliao plugin梗摇,這一步同郵件拓哟,不再贅述。
接入簡聊的團(tuán)隊(duì)伶授,可以在簡聊的團(tuán)隊(duì)首頁->聚合服務(wù)->Jenkins断序,選擇添加流纹。Jenkins的構(gòu)建通知會發(fā)到簡聊的某個(gè)話題中,通澄ナ可以新建一個(gè)持續(xù)集成的話題漱凝,用于通知。
添加成功后诸迟,可以展開設(shè)置指南茸炒,查看Jenkins中是如何設(shè)置簡聊的,關(guān)鍵是將WebHook地址copy到Jenkins自己的Job中阵苇,設(shè)置指南中已經(jīng)非常詳細(xì)壁公,我就不再贅述了。
Slack
不清楚國內(nèi)團(tuán)隊(duì)使用slack的多不多绅项,slack在國外是很火的紊册,雖然首頁登錄比較慢,但team的首頁的訪問完全沒有問題快耿。本節(jié)僅針對你已經(jīng)在slack上注冊了team囊陡,并想利用slack做Jenkins的構(gòu)建通知。
首先需要在Jenkins中安裝 slack plugin掀亥,同郵箱撞反,不再贅述。
登錄slack铺浇,在team的setting中選擇App&integrations.
直接在搜索欄中輸入Jenkins痢畜,跳轉(zhuǎn)至Jenkins配置頁面。
新添加一個(gè)Jenkins的config鳍侣,選擇要通知的channel丁稀。
選擇add Jenkins CI integration后,也會有詳細(xì)的Jenkins接入指引倚聚。跟著指引操作一般就不會有什么問題了线衫,slack與簡聊不一樣,是通過Token來標(biāo)識CI集成的通知標(biāo)識
總結(jié)
以上就是三種通知渠道惑折,你喜歡哪種授账?個(gè)人認(rèn)為如果團(tuán)隊(duì)比較習(xí)慣于用實(shí)時(shí)溝通工具,slack和簡聊都是比較好的工具惨驶,通知也很方便白热,比郵箱要實(shí)時(shí)很多。當(dāng)然粗卜,如果你的團(tuán)隊(duì)還沒有接入工具屋确,用郵箱也是可以達(dá)到這樣的目的。
如果對Jenkins的配有還有什么疑問,可以參考Jenkins實(shí)踐一:mac下Jenkins+gradle配置Android持續(xù)集成環(huán)境
如有問題攻臀,可以隨時(shí)交流焕数。