Jenkins:配置郵箱服務器發送構建結果

在此之前,我們在構建的時候,不管成功還是失敗,構建的結果都只是在Jenkins控制檯輸出。這種方式也不是不可以,但假設我們想知道項目有沒有構建,構建的結果是什麼,難道我們都要登錄Jenkins,然後一個個去看嗎?顯然不會用這種實用但過於“笨拙”的手法,今天我們說一下如果將構建結果通過郵箱發送給項目負責人。

1. 安裝插件

想要將構建結果通過郵箱發送出來,需要安裝Email Extension插件。

在這裏插入圖片描述

2. Jenkins設置郵箱相關參數

  • 設置系統管理員郵件地址

在這裏插入圖片描述

需要注意的是,郵箱要開啓相應的服務:

在這裏插入圖片描述

還有這裏需要發送短信獲取授權密碼作爲後面的密碼:

在這裏插入圖片描述

  • 設置郵件參數

在這裏插入圖片描述

  • 設置Jenkins默認郵箱信息

在這裏插入圖片描述

3. 準備郵件內容

在demo項目的根目錄編寫email.html,並提交到Gitlab,html內容如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
  <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次構建日誌</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
    <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
      <tr>
        <td>(本郵件是程序自動下發的,請勿回覆!)</td>
      </tr>
      <tr>
        <td>
                <h2><font color="#0000FF">構建結果 - ${BUILD_STATUS}</font></h2>
            </td>
      </tr>
      <tr>
        <td><br />
          <b><font color="#0B610B">構建信息</font></b>
          <hr size="2" width="100%" align="center" />
            </td>
      </tr>
      <tr>
        <td>
          <ul>
            <li>項目名稱:${PROJECT_NAME}</li>
            <li>構建編號:第${BUILD_NUMBER}次構建</li>
            <li>觸發原因:${CAUSE}</li>
            <li>構建日誌:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
            <li>構建&nbsp;&nbsp;Url:<a href="${BUILD_URL}">${BUILD_URL}</a></li>
            <li>工作目錄:<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
            <li>項目&nbsp;&nbsp;Url:<a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
          </ul>
        </td>
      </tr>
      <tr>
        <td>
                <b><font color="#0B610B">Changes Since Last Successful Build:</font></b>
          <hr size="2" width="100%" align="center" />
            </td>
      </tr>
      <tr>
        <td>
          <ul>
            <li>歷史變更記錄 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>
          </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br/>%m</pre>",pathFormat="&nbsp;&nbsp;&nbsp;&nbsp;%p"}
        </td>
      </tr>
      <tr>
        <td>
                <b>Failed Test Results</b>
          <hr size="2" width="100%" align="center" />
            </td>
      </tr>
      <tr>
        <td>
                <pre style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica,sans-serif">$FAILED_TESTS</pre>
          <br />
            </td>
      </tr>
      <tr>
        <td>
                <b><font color="#0B610B">構建日誌 (最後 100行):</font></b>
          <hr size="2" width="100%" align="center" />
            </td>
      </tr>
      <tr>
        <td>
                <textarea cols="80" rows="30" readonly="readonly" style="font-family: Courier New">${BUILD_LOG,maxLines=100}</textarea>
        </td>
      </tr>
    </table>
</body>
</html>

4. 修改流水線代碼

pipeline {
 agent any
 stages {
   stage('拉取代碼') {
    steps {
      checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '8a039ab1-9d39-49a2-888b-03dbe9ee60e1', url: 'http://192.168.1.19:82/test-group/demo.git']]])
    }
   }
   stage('編譯構建') {
    steps {
      sh label: '', script: 'mvn clean package'
    }
   }
   stage('部署測試') {
       steps {
         echo '部署測試,這是master分支'
       }
   }
 }
 post {
  always {
   emailext(
    subject: '構建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',
    body: '${FILE,path="email.html"}',
    to: '[email protected]'
   )
  }
 }
}

5. 構建測試

在這裏插入圖片描述

——End——
更多精彩分享,可掃碼關注微信公衆號哦。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章