新四季網

jenkins郵件模板錯誤(Jenkins郵件發送可修改模版)

2023-09-22 00:46:07 2

#頭條創作挑戰賽#

本文同步本人掘金平臺的文章:https://juejin.cn/post/7062327576395513887

上一篇,Jenkins Pipeline 結合 Gitlab 實現 Node 項目自動構建 我們已經實現了自動構建的功能。

在團隊合作中,項目在構建異常「或成功」時候,需要郵件通知相關的人員,這就涉及到 Jenkins 郵件發送的功能了。

安裝 Email Extension

Email Extension 插件允許你配置郵件通知。通過此插件,你可以自定義郵件的發送人,接受者和發送的內容。

Manage Jenkins -> Manage Plugins -> Available 。搜索 Email Extension 安裝

配置 Email Extension 參數

Manage Jenkins -> Configure System -> Extended E-mail Notification

第 1 點: Simple Mail Transfer Protocol (SMTP) 自己申請,如果不知道如何操作,請網上找答案。(應該也許不難吧...)

第 2 點: 郵件默認的接收郵件地址。

構建腳本

使用Jenkins Pipeline 結合 Gitlab 實現 Node 項目自動構建的Jenkinsfile腳本補充下。

pipeline { agent any tools { nodejs "nodejs" } stages { stage('Dependency') { steps { sh 'npm install' } } stage('Build') { steps { sh 'npm run clean' sh 'npm run build' } } } // 添加的腳本內容 post { always { emailext body: '${DEFAULT_CONTENT}', subject: '${DEFAULT_SUBJECT}', to: '${DEFAULT_RECIPIENTS}', from: '${env.DEFAULT_FROM_EMAIL}' } }}複製代碼

這就很明顯了:默認發送郵箱,默認接收郵箱,默認的發送主題,默認的發送內容。都是獲取我們上一步設定的值。效果如下:

構建失敗:

構建成功:

對比上面的兩張圖,構建失敗和構建成功,的構建結果字體竟然是不同的顏色,神奇...

如果你看上一節配置 Email Extension 參數中的截圖,你可能會留意到:

構建結果 - ${BUILD_STATUS}複製代碼

color="${BUILD_STATUS}" 嗯,加上這個,不同狀態返回的構建結果字體不同顏色了?我們帶動下構建pipeline的always -> changed。觸發構建信息由失敗 -> 成功,得到下面的結果:

看來是想多了啊,並不是不同的狀態不同顏色啊。不過,如果你不介意這個bug,可以使用...

升級下需求

發送郵件需要根據不同狀態,使用特定的顏色區分。比如:成功 -> #27AE60 , 失敗 -> #E74C3C , 其他顏色 -> #F4E242

咦,這還不簡單?在默認的發送模版上添加判斷條件就行了。

然而,不支持,太慘了,得另闢蹊徑~(大霧)

經過一番搜索,Groovy Template 能夠解決這個問題。

我們更改下 pipeline 腳本:

# ...post { always { emailext body: '''${SCRIPT,}''', subject: '${DEFAULT_SUBJECT}', to: '${DEFAULT_RECIPIENTS}', from: "${env.DEFAULT_FROM_EMAIL}" }}# ...複製代碼

我們構建下。構建是成功了,但是郵箱收到的卻是:

Groovy Template file [my-email-template] was not found in $JENKINS_HOME/email-templates.複製代碼

郵件提示,機器中 $JENKINS_HOME/email-templates 下並不存在 my-email-template 模版。(笑哭)

沒有權限怎麼辦呢?咱可以通過其他方法不?

再查找資料,咦,有了 - Email Extension Plugin is not loading groovy template added via Config File Provider Plugin。通過配置文件解決,我們來見證下:

步驟 1 : 到 jenkins 平臺上操作,Manage Jenkins -> Managed Files

步驟 2 : 點擊 Add a new Config

步驟 3 : 點選類型 Extended Email Publisher Groovy Template, 點擊 Submit 按鈕提交

步驟 4 : 輸入名稱和相關的內容。請記住名稱,後續使用到。

因為截圖篇幅問題,這裡的 Content 內容並沒有截取完整,完整的內容請戳Groovy_template.html,其中的關鍵代碼如下:

.tr-title { background-color: ; }複製代碼

Groovy 官方完整模版請見官方模版Groovy Email Template

扎心了啊,老鐵(尬笑)

步驟 5 : 修正你的 pipeline 文件,請確保你輸入和正確的名字"managed:Groovy Email Template"。

# ...post { changed { emailext body: '''${SCRIPT,}''', subject: '${DEFAULT_SUBJECT}', to: '${DEFAULT_RECIPIENTS}', from: "${env.DEFAULT_FROM_EMAIL}" }}# ...複製代碼

一切就緒,我們重新構建。結果如下:

構建狀態

郵箱收到內容截圖

成功

失敗

中止

嗯~效果不錯(撒花)完結

讀者有啥其他的方法呢,可以留言交流下。更多的內容,請戳Jimmy Github Blog

文章被收錄於專欄:

相關課程

3

收藏

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了