Jenkins配置郵件提醒 - 草稿

內容來自于以下文章:
https://blog.csdn.net/fullbug/article/details/53024562

Jenkins是一個很受歡迎的CI持續集成工具,能夠實現項目的自動構建、打包、測試、發布等。還可以在構建失敗、構建不穩定等狀態后發送郵件通知。現介紹一下如何在Jenkins中配置實現郵件通知。

在Jenkins中配置實現郵件通知,Jenkins提供了兩種方式的配置。

一種是Jenkins內置默認的郵件通知,但是它本身有很多局限性,比如它的郵件通知無法提供詳細的郵件內容、無法定義發送郵件的格式、無法定義靈活的郵件接收配置等等。

另外一種是通過安裝Email Extension Plugin插件,使用該插件來發送郵件通知。

不管哪種郵件通知都有全局配置和項目配置。其中全局配置是在Jenkins中系統管理的系統設置里面設置,項目配置在具體的項目中的配置中設置。

下面分別說明Jenkins兩種郵件通知的配置。

示例中的Jenkins版本為Jenkins ver. 2.27

一、Jenkins內置默認的郵件通知配置

1、全局配置

image

點擊左邊的“系統管理”菜單,選擇右邊的“系統設置”

image

在系統設置中找到Jenkins Locaction項填入Jenkins URL和系統管理員郵件地址,系統管理員郵件地址一定要配置,否則發不了郵件通知。因為郵件通知都是由系統管理員的郵箱發出來的。

image

找到郵件通知項,填入SMTP服務器信息及用戶名、密碼等認證信息。

image

配好以后勾選“通過發送測試郵件測試配置”

image

填入接收測試郵件的地址,點擊“Test configuration”。如果配置正確就會在下面顯示Email was successfully sent

image

在測試接收郵箱就會收到由Jenkins系統管理員的郵箱發出來的一封測試郵件。說明郵箱通知確實已經配置正確并能夠正常收發Jenkins的通知郵件了。有網友說如果配的發送郵箱是某個郵件服務商的比如163的郵件,接收郵箱也得要配相同郵件服務商163的才可以收到郵件,經過測試沒有這種限制,只要是能夠收發郵件隨便配哪個郵件服務商126、163、QQ、189甚至公司郵件等的都可以收。

image

2、項目配置

郵件通知的全局設置配好以后就可以在具體的項目中應用發送郵件通知了。

image

在項目的設置中找到“增加構建后的操作步驟”,選擇“E-mail Notifacation”通過E-mail通知。

image

在Recipients中填入郵件通知接收者中,如果有多個接收者用空格分隔,可以發送郵件通知給多個相關的接收人。

image

如果配置沒有問題,在構建出問題的時候都會有郵件通知到郵件通知接收者。

image

二、Email Extension Plugin插件配置郵件通知

1、全局配置

同樣在點擊左邊的“系統管理”菜單,選擇右邊的“系統設置”,找到Extend E-mail Notification進行全局配置。

image

同樣填好SMTP Server的信息。點擊“高級”進行SMTP鑒權的配置,配置發郵件人的用戶名、密碼等信息。

image

默認收件人填需要發送郵件通知的人,如有多個用空格分隔

image

點擊最右下角的"Default Triggers ..."按鈕設置默認的觸發郵件通知的事件。

image

根據實際情況勾選需要觸發郵件通知的事件。

image

保存全局的配置信息后到項目中進行項目的配置。

2、項目配置

進入到具體的項目配置界面點擊“配置”,在配置界面點擊“增加構建后操作步驟”,選擇“Editable Email Notification”

image

在設置中保存默認就可以了。

image

可以在“Advanced Settings”中針對該項目進行個性化的配置。

image

可以針對該項目定義該項目通知的收件人列表、主題、內容、附件等。

image

設置完后點擊保存。就可以去驗證是否可以郵件通知了。

通過測試工程構建后,Jenkins配置的郵件通接收人可以正常收到構建信息的郵件通知。

image

到這里Jenkins配置郵件通知全部完成了。

======================================

郵件通知配置相關的全局屬性詳解

  1. Override Global Settings:如果不選,該插件將使用默認的E-mail Notification通知選項。反之,您可以通過指定不同于( 默認選項)的設置來進行覆蓋。

  2. Default Content Type:指定構建后發送郵件內容的類型,有Text和HTML兩種.

  3. Use List-ID Email Header:為所有的郵件設置一個List-ID的郵件信頭

  4. Add 'Precedence: bulk' Email Header:設置優先級

  5. Default Recipients:自定義默認電子郵件收件人列表。如果沒有被項目配置覆蓋,該插件會使用這個列表。您可以在項目配置使用$ DEFAULT_RECIPIENTS參數包括此默認列表,以及添加新的地址在項目級別。添加抄送:cc:電子郵件地址例如,CC:someone@somewhere.com

  6. Reply To List:回復列表, A comma separated list of e-mail addresses to use in the Reply-To header of the email. This value will be available as $DEFAULT_REPLYTO in the project configuration.

  7. Emergency reroute:如果這個字段不為空,所有的電子郵件將被單獨發送到該地址(或地址列表)。

  8. Excluded Committers:防止郵件被郵件系統認為是垃圾郵件,郵件列表應該沒有擴展的賬戶名(如:@domain.com),并且使用逗號分隔

  9. Default Subject:自定義郵件通知的默認主題名稱。該選項能在郵件的主題字段中替換一些參數,這樣你就可以在構建中包含指定的輸出信息。

  10. Maximum Attachment Size:郵件最大附件大小。

  11. Default Content:自定義郵件通知的默認內容主體。該選項能在郵件的內容中替換一些參數,這樣你就可以在構建中包含指定的輸出信息。

  12. Default Pre-send Script:默認發送前執行的腳本(注:grooy腳本,這是我在某篇文章上看到的,不一定準確)。

  13. Enable Debug Mode:啟用插件的調試模式。這將增加額外的日志輸出,構建日志以及Jenkins的日志。在調試時是有用的,但不能用于生產。

  14. Enable Security:啟用時,會禁用發送腳本的能力,直接進入Jenkins實例。如果用戶試圖訪問Jenkins管理對象實例,將拋出一個安全異常。

  15. Content Token Reference:郵件中可以使用的變量,所有的變量都是可選的。

全局郵件變量

email-ext插件允許使用變量來動態插入數據到郵件的主題和內容主體中。變量是一個以$(美元符號)開始,并以空格結束的字符串。當一個郵件觸發時,主題和內容主體字段的所有變量都會通過真實的值動態地替換。同樣,變量中的“值”能包含其它的變量,都將被替換成真實的內容。

比如,項目配置頁的默認主題和內容分別對應的是全局配置頁面的DEFAULT_SUBJECT和DEFAULT_CONTENT,因此它會自動地使用全局的配置。同理,觸發器中的Subject和Content分別對應的是項目配置頁面的DEFAULT_SUBJECT和DEFAULT_CONTENT,所以它也會自動地使用項目的配置。由于變量中的“值”能包含其它的變量,所以就能為變量快速地創建不同的切入點:全局級別(所有項目),專屬級別(單一項目),觸發器級別(構建結果)。

如果你要查看所有可用的變量,你可以點擊配置頁的Content Token Reference的問號獲取詳細的信息。

所有的變量都是可選的,每個變量可以如下表示,字符串類型使用name=“value”,而布爾型和數字型使用name=value。如果{和}標記里面沒有變量,則不會被解析。示例:TOKEN,{TOKEN},{TOKEN,count=100},{ENV,var=”PATH”}

提示:用英文逗號分隔變量的參數。

常用的屬性如下:

${FILE,path="PATH"} 包括指定文件(路徑)的含量相對于工作空間根目錄。

path文件路徑,注意:是工作區目錄的相對路徑。

${BUILD_NUMBER} 顯示當前構建的編號。

${JOB_DESCRIPTION} 顯示項目描述。

${SVN_REVISION} 顯示svn版本號。還支持Subversion插件出口的SVN_REVISION_n版本。

${CAUSE} 顯示誰、通過什么渠道觸發這次構建。

${CHANGES } -顯示上一次構建之后的變化。

showPaths 如果為 true,顯示提交修改后的地址。默認false。

showDependencies 如果為true,顯示項目構建依賴。默認為false

format 遍歷提交信息,一個包含%X的字符串,其中%a表示作者,%d表示日期,%m表示消息,%p表示路徑,%r表示版本。注意,并不是所有的版本系統都支持%d和%r。如果指定showPaths將被忽略。默認“[%a] %m\n”。

pathFormat 一個包含“%p”的字符串,用來標示怎么打印路徑。

${BUILD_ID}顯示當前構建生成的ID。

${PROJECT_NAME} 顯示項目的全名。

${PROJECT_DISPLAY_NAME} 顯示項目的顯示名稱。

{SCRIPT} 從一個腳本生成自定義消息內容。自定義腳本應該放在"JENKINS_HOME/email-templates"。當使用自定義腳本時會默認搜索$JENKINS_HOME/email-templatesdirectory目錄。其他的目錄將不會被搜索。

script 當其使用的時候,僅僅只有最后一個值會被腳本使用(不能同時使用script和template)。

template常規的simpletemplateengine格式模板。

${JENKINS_URL} 顯示Jenkins服務器的url地址(你可以再系統配置頁更改)。

${BUILD_LOG_MULTILINE_REGEX}按正則表達式匹配并顯示構建日志。

regex java.util.regex.Pattern 生成正則表達式匹配的構建日志。無默認值,可為空。

maxMatches 匹配的最大數量。如果為0,將匹配所有。默認為0。

showTruncatedLines 如果為true,包含[...truncated ### lines...]行。默認為true。

substText 如果非空,就把這部分文字(而不是整行)插入該郵件。默認為空。

escapeHtml 如果為true,格式化HTML。默認為false。

matchedSegmentHtmlStyle 如果非空,輸出HTML。匹配的行數將變為<b style=”your-style-value”> html escaped matched line </b>格式。默認為空。

${BUILD_LOG} 顯示最終構建日志。

maxLines 日志最多顯示的行數,默認250行。

escapeHtml 如果為true,格式化HTML。默認false。

${PROJECT_URL} 顯示項目的URL地址。

${BUILD_STATUS} -顯示當前構建的狀態(失敗、成功等等)

${BUILD_URL} -顯示當前構建的URL地址。

${CHANGES_SINCE_LAST_SUCCESS} -顯示上一次成功構建之后的變化。

reverse在頂部標示新近的構建。默認false。

format遍歷構建信息,一個包含%X的字符串,其中%c為所有的改變,%n為構建編號。默認”Changes for Build #%n\n%c\n”。

showPaths,changesFormat,pathFormat分別定義如${CHANGES}的showPaths、format和pathFormat參數。

${CHANGES_SINCE_LAST_UNSTABLE} -顯示顯示上一次不穩固或者成功的構建之后的變化。

reverse在頂部標示新近的構建。默認false

format遍歷構建信息,一個包含%X的字符串,其中%c為所有的改變,%n為構建編號。默認”Changes for Build #%n\n%c\n”。

showPaths,changesFormat,pathFormat分別定義如${CHANGES}的showPaths、format和pathFormat參數。

${ENV} –顯示一個環境變量。

var– 顯示該環境變量的名稱。如果為空,顯示所有,默認為空。

${FAILED_TESTS} -如果有失敗的測試,顯示這些失敗的單元測試信息。

${JENKINS_URL} -顯示Jenkins服務器的地址。(你能在“系統配置”頁改變它)。

{HUDSON_URL} -不推薦,請使用JENKINS_URL

${PROJECT_URL} -顯示項目的URL。

${SVN_REVISION} -顯示SVN的版本號。

{JELLY_SCRIPT} -從一個Jelly腳本模板中自定義消息內容。有兩種模板可供配置:HTML和TEXT。你可以在JENKINS_HOME/email-templates下自定義替換它。當使用自動義模板時,”template”參數的名稱不包含“.jelly”。

template模板名稱,默認”html”。

${TEST_COUNTS} -顯示測試的數量。

var– 默認“total”。

total -所有測試的數量。

fail -失敗測試的數量。

skip -跳過測試的數量。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,489評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,290評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,776評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,510評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,866評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,036評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,585評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,331評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,536評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,754評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,154評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,469評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,273評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,505評論 2 379

推薦閱讀更多精彩內容