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>已经提测,请相关同事注意。
> 提测镜像:<font color="comment">docker.vonedao.com/vonedao-cs/vonedao-tenant-message-biz:1.0.0.4</font>
> 该版本提交信息:<font color="comment">[Changes](http://jenkins.vonedao.com/job/vonedao-tenant-message-biz/9/)</font>
> 配置参考:<font color="comment">http://nacos.vonedao.com/nacos/配置文件:vonedao-tenant-message-biz-dev.yml</font>
> 提测申请人:<font color="warning">chenshanzi</font>
>  测试环境部署:<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>"
    }
}'
原文地址:https://www.cnblogs.com/zoujiaojiao/p/12983380.html