部署流程
開發環境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>"
}
}'