pipeline 流水線:持續部署(docker)-企業微信群通知消息


部署流程

開發環境Jenkins的job進行編譯-打包-build成鏡像-推送到鏡像私有倉庫-部署開發環境-(開發自測)-自測通過-提測。
版本管理:

構建的過程:


開發環境通過驗證,則點擊“Yes”,沒有則Abort。點擊Yes后會進行提測通知:

配置



pipeline腳本

pipeline {
    agent any
    //添加工具
    tools {
        maven 'maven'
        jdk   'java8'
    }
    //初始化變量
    environment {
       BUILD_USER = ""
   }   
    // 分支選擇
    parameters {
        gitParameter branchFilter: 'origin/(.*)', defaultValue: 'develop', name: 'BRANCH', type: 'PT_BRANCH'
    }
    //發布流程 
    stages {
        stage('Checkout') {
            steps {
                echo '開始拉取代碼.....'
                echo '${params.BRANCH}'
                git branch: "${params.BRANCH}", credentialsId: '7367665a-9730-40be-a6f0-1de413f5ea29', url: 'http://gitlab.vonedao.com/vonechain-platform/vonedao-upms.git'
            }
        }
        stage('Build') {
            steps {
                echo '開始執行打包操作.......'
                sh 'mvn clean install -Dmaven.test.skip=true -U'
            }
        }
        stage('Build Docker Image') {
            steps {
                echo 'build images'
                sh 'mvn -f ./$JOB_NAME/pom.xml  docker:stop docker:remove docker:build docker:push'
            }
        }
        stage('Deploy Dev') {
            steps {
                echo '開始發布開發環境 .......'
                sh '/var/jenkins_home/piplineshell/deploy_dev.sh'
            }
        }
        stage('提測') {
            //人工審核,開發環境通過驗證則提測 
            input {
                message "是否將鏡像打tag到測試?"
                ok "Yes"
                //若開發環境有新基礎服務或者nacos新增加了配置,請備注,用以提醒測試   
                parameters {
                    string(name: 'Config', defaultValue: '無配置更新 ', description: '備注配置信息')
                }
            }
            steps {
                
                script{
                    //提測版本號不能為空 
                if (env.NewVersion) {
                    //提測版本號不能與歷史提測版本號重復 
                    sh '/var/jenkins_home/piplineshell/check_version_.sh'
                    //編譯打包測試環境的包並push 鏡像 
                    sh 'mvn versions:set -DnewVersion=${NewVersion}'
                    sh 'mvn versions:update-child-modules' 
                    sh 'mvn clean install -Dmaven.test.skip=true -U '
                    sh 'mvn -f ./${JOB_NAME%-*}-api/pom.xml deploy'
                    sh 'mvn -f ./$JOB_NAME/pom.xml  docker:stop docker:remove docker:build docker:push'
                    sh 'rm -rf $WORKSPACE/$JOB_NAME/*'
                    sh '/var/jenkins_home/piplineshell/version_tag.sh'
                    
                }
                else {
                    echo 'ERROR : 沒有填寫提測版本號'  
                    sh 'exit 1'
                    }
            }
            // Get build user profile via User Build Vrs plugin
            // https://wiki.jenkins.io/display/JENKINS/Build+User+Vars+Plugin
            //企業微信消息通知 
            wrap([$class: 'BuildUser']) {
                script {
                       BUILD_USER = "${env.BUILD_USER}"
                       echo "${BUILD_USER}" 
                       sh '/var/jenkins_home/piplineshell/sendmessage.sh'
                           
                    }
                }
            }
        }
    } 
    
}

企業微信推送

在企業微信群添加一個機器人,會生成一個webhook地址。

curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=60f7XXXXXXXXXXXX19' \
   -H 'Content-Type: application/json' \
   -d '
{
    "msgtype": "markdown",
    "markdown": {
        "content": "項目<font color=\"warning\">vonedao-tenant-message-biz</font>已經提測,請相關同事注意。\n> 提測鏡像:<font color=\"comment\">docker.vonedao.com/vonedao-cs/vonedao-tenant-message-biz:1.0.0.4</font>\n> 該版本提交信息:<font color=\"comment\">[Changes](http://jenkins.vonedao.com/job/vonedao-tenant-message-biz/9/)</font>\n> 配置參考:<font color=\"comment\">http://nacos.vonedao.com/nacos/配置文件:vonedao-tenant-message-biz-dev.yml</font>\n> 提測申請人:<font color=\"warning\">chenshanzi</font>\n>  測試環境部署:<font color=\"comment\">確保nacos配置已經同步,請點擊:[發布測試環境](http://jenkins.vonedao.com/view/%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83/job/sit-vonedao/)</font>"
    }
}'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM