雲計算(9)—— jekins(2)

雲計算(9)—— jekins(2)

三豐 soft張三丰 html

流水線

雲計算(9)—— jekins(2)

Jenkins Pipeline整體介紹

1.Pipeline 是Jenkins 2.X核心特性,幫助Jenkins實現從CI到CD與DevOps的轉變 2.Pipeline 簡而言之,就是一套運行於Jenkins上的工做流框架,將本來獨立 運行於單個或者多個節點的任務鏈接起來,實現單個任務難以完成的複雜流 程編排與可視化。node

什麼是Jenkins Pipeline

1.Jenkins Pipeline是一組插件,讓Jenkins能夠實現持續交付管道的落地和實施。2.持續交付管道(CD Pipeline)是將軟件從版本控制階段到交付給用戶或客戶的完 整過程的自動化表現。3.軟件的每一次更改(提交到源代碼管理系統)都要通過一個複雜的過程才能被髮布。git

Why Pipeline?

本質上,Jenkins 是一個自動化引擎,它支持許多自動模式。Pipeline向Jenkins中添加了一組強大的工具, 支持用例 簡單的CI到全面的CD pipeline。經過對一系列的相關任務進行建模, 用戶能夠利用pipeline的不少特性:api

• 代碼:Pipeline以代碼的形式實現,一般被檢入源代碼控制,使團隊可以編輯, 審查和迭代其CD流程。• 可持續性:Jenkins重啓或者中斷後都不會影響Pipeline Job。• 停頓:Pipeline能夠選擇中止並等待人工輸入或批准,而後再繼續Pipeline運行。• 多功能:Pipeline支持現實世界的複雜CD要求,包括fork/join子進程,循環和 並行執行工做的能力。• 可擴展:Pipeline插件支持其DSL的自定義擴展以及與其餘插件集成的多個選項。框架

Pipeline與freestyle區別

1.Job調度方式 pipeline:經過結構化pipeline 語法進行調度,易於理解與閱讀 freestyle:經過jenkins api或者cli進行調度ide

2.Job顯示形式 pipline:提供上帝視角(全局視圖) freestyle:沒有視圖工具

Jenkins Pipeline Job構建配置

雲計算(9)—— jekins(2)
雲計算(9)—— jekins(2)
雲計算(9)—— jekins(2)
雲計算(9)—— jekins(2)
雲計算(9)—— jekins(2)

1.建立pipeline job任務,新建任務》輸入任務名稱》選擇「流水線」》點擊【肯定】
雲計算(9)—— jekins(2)
添加描述,This is my first test pipeline job
雲計算(9)—— jekins(2)
添加 pipeline腳本,點擊【保存】
雲計算(9)—— jekins(2)
腳本解釋gitlab

1.聲明腳本,添加環境變量
雲計算(9)—— jekins(2)
2.添加選項參數deploy_env,以及文本參數version
雲計算(9)—— jekins(2)
3.新建stage任務,將定義deploy_env、version參數,傳入到test.properties 中
雲計算(9)—— jekins(2)
4.檢查test.properties是否存在內容
雲計算(9)—— jekins(2)
5.完整腳本測試

#!groovy

pipeline {
    agent {node {label 'master'}}

    environment {
        PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
    }

    parameters {
        choice(
            choices: 'dev\nprod',
            description: 'choose deploy environment',
            name: 'deploy_env'
            )
        string (name: 'version', defaultValue: '1.0.0', description: 'build version')
    }

    stages {
        stage("Checkout test repo") {
            steps{
                sh 'git config --global http.sslVerify false'
                dir ("${env.WORKSPACE}") {
                    git branch: 'master', credentialsId:"9aa11671-aab9-47c7-a5e1-a4be146bd587", url: 'https://root@gitlab.example.com/root/test-repo.git'
                }
            }
        }
        stage("Print env variable") {
            steps {
                dir ("${env.WORKSPACE}") {
                    sh """
                    echo "[INFO] Print env variable"
                    echo "Current deployment environment is $deploy_env" >> test.properties
                    echo "The build is $version" >> test.properties
                    echo "[INFO] Done..."
                    """
                }
            }
        }
        stage("Check test properties") {
            steps{
                dir ("${env.WORKSPACE}") {
                    sh """
                    echo "[INFO] Check test properties"
                    if [ -s test.properties ]
                    then 
                        cat test.properties
                        echo "[INFO] Done..."
                    else
                        echo "test.properties is empty"
                    fi
                    """

                    echo "[INFO] Build finished..."
                }
            }
        }
    }
}

雲計算(9)—— jekins(2)

jenkins配置郵件通知

安裝郵件插件ui

因爲Jenkins自帶的郵件功能比較雞肋,所以這裏推薦安裝專門的郵件插件,不過下面也會順帶介紹如何配置Jenkins自帶的郵件功能做用。

能夠經過系統管理→管理插件→可選插件,選擇Email Extension Plugin插件進行安裝:
雲計算(9)—— jekins(2)

因爲我已經安裝了該插件,所以這裏顯示在已安裝目錄下,還未安裝的童鞋能夠經過右上角的搜索框搜索改插件,而後在線安裝,安裝好以後重啓Jenkins。
雲計算(9)—— jekins(2)
2、系統設置

經過系統管理→系統設置,進行郵件配置:
雲計算(9)—— jekins(2)

一、設置jenkins地址和管理員郵箱地址

雲計算(9)—— jekins(2)
二、設置發件人等信息

PS:這裏的發件人郵箱地址切記要和系統管理員郵件地址保持一致(固然,也能夠設置專門的發件人郵箱,不過不影響使用,根據具體狀況設置便可)

雲計算(9)—— jekins(2)
雲計算(9)—— jekins(2)
上圖的默認收件人郵箱能夠添加多人,中間用英文半角逗號隔開便可。

三、配置郵件內容模版
雲計算(9)—— jekins(2)

附:郵箱內容模版(Default Content):

<!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>    
            本郵件由系統自動發出,無需回覆!<br/>            
            各位同事,你們好,如下爲${PROJECT_NAME }項目構建信息</br> 
            <td><font color="#CC0000">構建結果 - ${BUILD_STATUS}</font></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>構建狀態:${BUILD_STATUS}</li>    
                    <li>構建日誌:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                    <li>構建  Url :<a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                    <li>工做目錄 :<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    
                    <li>項目  Url :<a href="${PROJECT_URL}">${PROJECT_URL}</a></li>    
                </ul>    

<h4><font color="#0B610B">失敗用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>

<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
詳細提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>

            </td>    
        </tr>    
    </table>    
</body>    
</html>

四、設置郵件觸發機制
雲計算(9)—— jekins(2)
上面的幾步完成後,點擊應用,保存便可。

五、配置Jenkins自帶的郵件功能

配置內容以下,和Email Extension Plugin插件一樣的配置,能夠經過勾選經過發送測試郵件測試配置按鈕來測試配置是否成功發送郵件,以下圖:
雲計算(9)—— jekins(2)

完成上面的系統設置後,點擊保存便可。

3、項目配置

在完成系統設置後,還須要給須要構建的項目進行郵件配置。

一、進入項目配置界面

進入新建的項目界面,點擊配置按鈕,進入系統配置頁面:

雲計算(9)—— jekins(2)

二、配置構建後操做模塊

進入系統配置頁面後,點擊上方的構建後操做選項,配置內容以下:
雲計算(9)—— jekins(2)

進入構建後操做的模塊,而後會看到下面的內容,具體的配置信息如圖中標註:
雲計算(9)—— jekins(2)

接上圖:
雲計算(9)—— jekins(2)

配置內容默認便可,郵件內容類型能夠根據本身的配置選擇,收件人列表能夠從前面的系統設置中默認收件人選項配置。

4、構建觸發郵件測試

以下圖,爲我收到的測試郵件,郵件內容能夠經過系統設置裏面進行個性化的配置,可參考我上面的模板,或者自定義便可。
雲計算(9)—— jekins(2)

相關文章
相關標籤/搜索