zoukankan      html  css  js  c++  java
  • 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>"
        }
    }'
    
  • 相关阅读:
    上周热点回顾(5.9-5.15)团队
    上周热点回顾(5.2-5.8)团队
    上周热点回顾(4.25-5.1)团队
    .NET跨平台之旅:升级ASP.NET Core示例站点团队
    上周热点回顾(4.18-4.24)团队
    上周热点回顾(4.11-4.17)团队
    如何在Eclipse中正确安装Jetty插件并初步使用(图文详解)
    Spark Mllib里如何采用保序回归做回归分析(图文详解)
    机器学习概念之梯度下降算法(全量梯度下降算法、随机梯度下降算法、批量梯度下降算法)
    程序代码里出现illegal character 'ufeff' 和 expected class or object definition的解决办法(图文详解)
  • 原文地址:https://www.cnblogs.com/zoujiaojiao/p/12983380.html
Copyright © 2011-2022 走看看