1. 安装 Git Parameter插件
系统管理——插件管理——搜索“Git Parameter”,确认是否已经安装插件,没有安装则先安装插件

2. 创建pipeline类型构建Job

3. 配置分支参数
在General部分、选择参数化构建过程、选择git参数

填写参数信息
4. 配置流水线

代码仓库存放Jenkinsfile文件
代码仓库ruoyi-auth路径下需存在Jenkinsfile文件pipeline {
agent any
environment {
REGISTRY= "swr.cn-east-3.myhuaweicloud.com"
IMAGE_TAG = sh(script: "echo `date '+%s'`", returnStdout: true).trim()
}
stages {
stage('拉取代码') {
steps {
checkout scmGit(branches: [[name: "${branch}"]], extensions: [], userRemoteConfigs: [[credentialsId: '1', url: 'http://172.30.42.70/root/ruoyi_cloud.git']])
}
}
stage('打包构建') {
steps {
sh 'mvn clean package -Dmaven.test.skip=true'
}
}
stage ('镜像构建并推送到远程仓库') {
steps {
sh 'cd ${WORKSPACE}/ruoyi-auth/target/ && cp ../Dockerfile ./ && docker build -t swr.cn-east-3.myhuaweicloud.com/beijia/ruoyi-auth:${IMAGE_TAG} .'
sh 'docker push swr.cn-east-3.myhuaweicloud.com/beijia/ruoyi-auth:${IMAGE_TAG}'
}
}
stage ('是否部署到生产环境') {
steps {
timeout(time: 10, unit: 'MINUTES') {
input message: '请确认是否部署到生产环境', ok: '确认发布到生产环境'
}
}
}
stage ('进行灰度发布') {
steps {
sh 'kubectl set image deployment/ruoyi-auth ruoyi-auth=swr.cn-east-3.myhuaweicloud.com/beijia/ruoyi-auth:${IMAGE_TAG} -n beijia --record=true && kubectl rollout pause deployment -n beijia ruoyi-auth'
}
}
stage ('是否取消暂停发布,全面更新应用') {
steps {
timeout(time: 10, unit: 'MINUTES') {
input message: '是否取消暂停发布,全面更新应用', ok: '确认'
sh 'kubectl rollout resume deployment -n beijia ruoyi-auth'
}
}
}
}
}
