設定 Jenkins 版本更新完成發送 Email 通知並包含異動記錄

Jenkins 用了一陣子,一直在思考如何在版本更新後自動發送通知,且內容包含更新結果,今天來解決這個需求。
我們的目標

自動發送通知,無論成功與失敗

郵件內容要有更新的記錄

  1. 首先你要安裝 email-ext plugin
  2. 再來設定 exmail-ext,到管理 Jenkins下,設定系統,找到擴充電子郵件通知如下圖
  3. 設定你的SMTP 伺服器
  4. 設定回覆清單,若有多個名單請用半型逗號隔開如,abc@gmail.com,efg@gmail.com
  5. 設定預設主旨
    專案:$PROJECT_NAME - 包版編號 # $BUILD_NUMBER - 包版狀態:$BUILD_STATUS!
  6. 設定預設內容
    這個格式我是參照WEB的異動記錄的 Html 格式
<H1>專案:$PROJECT_NAME - 包版編號 # $BUILD_NUMBER - 包版狀態:$BUILD_STATUS</H1>
<p>專案描述:${JOB_DESCRIPTION}</P>
異動記錄如下:
<hr>
GIT:${GIT_URL}<BR><BR>
${CHANGES, showPaths=true, format="<table class=\"pane\" style=\"width: 100%;border-collapse: collapse;border:none\"><tbody><tr class=\"pane\"><td colspan=\"2\" style=\"padding: 4px 4px 3px 4px;vertical-align: middle;\"class=\"changeset\"><a name=\"%r\"></a><div style=\"border: 1px solid #ccb; background: #eed; padding: 4px; white-space: normal;\"><b>Commit <a href=\"$GIT_URL/commits/%r\">%r </a> by %a</b><pre>%m<br></pre></div></td></tr> %p </tbody></table>",pathFormat="<tr><td width=\"16\">📋</td><td><a href=\"$GIT_URL/history/%p\"> %p </a></td></tr>"}
<BR><BR>
<hr>
$BUILD_URL to view the results.
本郵件是自動發送,請勿回覆。<BR>
包版網址:<a href="$BUILD_URL">$BUILD_URL</a><br/>
Console log: <a href="${BUILD_URL}console">${BUILD_URL}console</a<br/>
<hr/>

下方會有內容 Token 參考的設定說明。

接下來就是針對你的 Project 設定
1. 進入專案組態
2. 新增可編式電子郵件通知

3. 設定我都用預設值,唯讀Trigger 預誰是失敗才通知 Developer,這個我把他移除,新一個 Always, Send to Recipient List。


最後就是先commit 一次,再做版本更新,測試信件內容樣式。

Related Posts

發佈留言