Jenkins自動集成之路-實戰應用編

在上一編文章裏已經把Jenkins安裝好裏,通過docker安裝在阿里雲GFS-2服務器上裏,參考(Jenkins自動集成之路-搭建部署編),接下來將正式開始使用。

目的

爲團隊項目工程配置好自動構建任務,利用Jenkins依據Gitlab的代碼提交觸發自動構建任務,並自動發佈到研發環境到集成環境裏。

大致步驟
push(開發人員提交代碼)–> Gitlab通知Jenkins --> Jenkins去Gitlab拉取最新代碼,啓動構建任務 -->
Build(構建打包)–> Test(測試) --> Deliver發佈部署 --> Jenkins通知Gitlab構建結果。

任務清單

  • 後端服務項目自動構建
  • 前端項目自動構建
  • 前端JsClientAPI自動生成

基礎環境

Jenkins,Git,Gitlab,Docker,JDK11,Maven
安裝部署參考《基礎環境安裝部署》

Jenkins流水線Pipeline實踐

實踐說明

  1. 當Gitlab項目的develop分支發生Push事件時,進行自動構建。
  2. 使用Maven構建打包應用。
  3. 使用Maven測試應用。
  4. 使用docker構建應用容器鏡像。
  5. 使用docker部署運行應用。

建Jenkinsfile文件

在Java項目根目錄建裏jenkins目錄,結構如:jenkins/scripts
jenkins/目錄放主Jenkinsfile文件
jenkins/scripts目錄放sh腳本文件

Jenkinsfile文件

pipeline {
    agent {
        docker {
            image '172.xx.209.xx:8082/jenkins/maven:3.6.3-jdk-11'
            args '-v /data/maven/.m2:/root/.m2'
        }
    }
    environment { 
        TARTGET_APP_NAME = 'my-app'
        TARTGET_APP_VERSION = '1.0.0'
    }
    stages {
        stage('Build') { 
            steps {
                sh 'mvn clean install'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test'
            }
            post {
                always {
                    junit 'target/surefire-reports/*.xml'
                }
            }
        }
        stage('Deliver') { 
            steps {
                sh 'echo "開始構建app的鏡像"'
                sh 'pwd'
                sh 'docker build -t ${TARTGET_APP_NAME}:${TARTGET_APP_VERSION} ./${TARTGET_APP_NAME}/'
                script {
                    try {
                        sh 'echo "停止之前的app docker 容器"'
                        sh 'docker stop ${TARTGET_APP_NAME}${TARTGET_APP_VERSION}'
                        sh 'echo "刪除之前的app docker 容器"'
                        sh 'docker rm ${TARTGET_APP_NAME}${TARTGET_APP_VERSION}'
                    }catch (err){}
                }
                sh 'echo "開始運行新的app docker 容器"'
                sh 'docker run -d --name ${TARTGET_APP_NAME}${TARTGET_APP_VERSION} -p 18001:18001 -e env=dev -e SPRING_PROFILES_ACTIVE=dev -e JAVA_OPTS="-Xmx2049m -Xms2049m" ${TARTGET_APP_NAME}:${TARTGET_APP_VERSION}'
            }
        }
    }
}

在Jenkins中配置你的Gitlab的Access Token

在你的Gitlab裏先設置Token
在這裏插入圖片描述
在Jenkins的首頁 -> 憑據 -> 系統 -> 全局憑據 -> 添加憑據, 把上面 GitLab 中生成的 access token 填進去
在這裏插入圖片描述
在Jenkins的首頁 -> 系統管理 -> 系統設置 -> Gitlab 配置項, 填入 GitLab 相關的配置, 後面配置項目時用到。
在這裏插入圖片描述

在Jenkins中創建你的流水線項目

  1. 創建新項目
    回到Jenkins主界面,New Item ----> create new jobs
    在這裏插入圖片描述

  2. 項目命名,選擇流水線Pipeline類型任務

    • 在 Enter an item name 域中,爲新的流水線項目指定名稱(例如 simple-java-maven-app)。
    • 向下滾動並單擊 Pipeline,然後單擊頁面末尾的 OK 。
      在這裏插入圖片描述
  3. 配置任務參數

    • 在General頁籤裏選擇,並設置參數
      設置項目的git地址
      在這裏插入圖片描述
      設置構建觸發器,當有push時觸發,該步驟重要獲取兩個參數webhook URL 和Secret tonken,用於到Gitlab裏配置
      在這裏插入圖片描述
      在這裏插入圖片描述
  • 配置任務腳本
  • 點擊頁面頂部的流水線 Pipeline 選項卡,向下滾動到 Pipeline 部分。
  • 選擇 Pipeline script from SCM 選項。此選項指示Jenkins從源代碼管理(SCM)倉庫獲取你的流水線。
  • 在 SCM 域中,選擇 Git。
  • 在 Repository URL 域中,填寫項目到git地址,選擇git的賬號密碼
  • 點擊 Save 保存你的流水線項目。
    在這裏插入圖片描述

接下來就是配置Gitlab裏,首先打開你的Gitlab界面,去到項目頁面到配置界面,進入Integrations配置界面,將webhook URL 和Secret tonken配置進去,並保存,如下圖
在這裏插入圖片描述

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