部署流程
开发环境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>"
}
}'