Jenkins pipeline:声明式编写示例

网友投稿 292 2022-10-10

Jenkins pipeline:声明式编写示例

#!groovy import java.text.SimpleDateFormat def riqi="" def gateway = "172.16.0.10" def backip = "172.16.0.11" def business = "daJatIng-cloud-business" def gateway = "daJatIng-cloud-gateway" def deposit = "daJatIng-cloud-deposit" def vsiTransfer = "/data/daJatIng/daJaiang-transfer-prod" pipeline { agent {node {label 'master'}} environment { PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin" } parameters { choice( choices: 'daJaiang\nRollback_daJaiang', description: 'daJaiang:拿到"BRANCH_TAG"给出的版本号更新服务端\nRollback_daJaiang:拿到"BRANCH_TAG"给出的版本号回滚服务端', name: 'deploy_environment' ) choice( choices: '172.16.0.10\n172.16.0.11', description: '选择要更新操作的生产服务器节点', name: 'Remote_sipAddress' ) choice( choices: 'All_Service\nGateway_Service\nDeposit_Service', description: '选择要更新操作的生产服务器节点上的Springboot项目,默认为All更新所有 [ All | gateway | deposit ]', name: 'Single_Supdate' ) gitParameter (name: 'TAG', description: '给出master分支指定版本号(TAG:v1.0.0)', type: 'PT_TAG', defaultValue: 'master', sortMode: 'DESCENDING_SMART', selectedValue: 'TOP', listSize: '0') } stages { stage("Checkout master branch") { steps{ checkout([$class: 'GitSCM', branches: [[name: "${params.TAG}"]], doGenerateSubmoduleConfigurations: false, extensions: [], gitTool: 'Default', submoduleCfg: [], userRemoteConfigs: [[url: 'http://GitCloud:daJatIng12586@172.10.0.28/java/daJaiang.git']] ]) } } stage("Maven Build") { steps{ dir ("${env.WORKSPACE}") { sh """ echo "[INFO] run the maven build" /var/lib/jenkins/maven-3.6.3/bin/mvn clean install -Dmaven.test.skip=true """ } } } stage('vsiTransfer jarbor') { steps{ dir ("${env.WORKSPACE}") { sh """ echo "[INFO] mv files to ${vsiTransfer}" if [ ! -d "${vsiTransfer}" ] then mkdir -p ${vsiTransfer} else rsync -a ${business}/${business}/target/*.jar ${vsiTransfer} rsync -a ${counter}/${counter}/target/*.jar ${vsiTransfer} rsync -a ${customer}/${customer}/target/*.jar ${vsiTransfer} rsync -a ${gateway}/${gateway}/target/*.jar ${vsiTransfer} rsync -a ${deposit}/${deposit}/target/*.jar ${vsiTransfer} fi """ } } } stage('Confirm the update') { input { message "XXX 生产系统【Spring】项目已构建完成,确认是否继续更新?" ok "Yes, Confirm the update" } steps { echo "已确认,更新中......" } } stage('Service updates') { steps { script{ if ((env.Remote_sipAddress =~ '172.16.0.10').matches()) { if ((env.Single_Supdate =~ 'All_Service').matches()) { echo "开始更新${Remote_sipAddress}节点的[所有]服务" sh "ssh ${gateway} /data/scripts/stop_java.sh" sh "rsync -a ${vsiTransfer}/* ${gateway}:/data/daJatIng/daJaiang/Micros/" sh "ssh ${gateway} /data/scripts/start_java.sh" } } if ((env.Remote_sipAddress =~ '172.16.0.10').matches()) { if ((env.Single_Supdate =~ 'gateway_Service').matches()) { echo "开始更新${Remote_sipAddress}节点的[gateway]服务" sh "ssh ${gateway} /data/scripts/source-jar-del-gateway.sh" sh "rsync -a ${vsiTransfer}/daJatIng-cloud-gateway.jar ${gateway}:/data/daJatIng/daJaiang/Micros" sh "ssh ${gateway} /data/scripts/start_java_gateway.sh" } } if ((env.Remote_sipAddress =~ '172.16.0.10').matches()) { if ((env.Single_Supdate =~ 'Deposit_Service').matches()) { echo "开始更新${Remote_sipAddress}节点的[deposit]服务" sh "ssh ${gateway} /data/scripts/source-jar-del-deposit.sh" sh "rsync -a ${vsiTransfer}/daJatIng-cloud-deposit.jar ${gateway}:/data/daJatIng/daJaiang/Micros" sh "ssh ${gateway} /data/scripts/start_java_deposit.sh" } } if ((env.Remote_sipAddress =~ '172.16.0.11').matches()) { if ((env.Single_Supdate =~ 'All_Service').matches()) { echo "开始更新${Remote_sipAddress}节点的[所有]服务" sh "ssh ${backip} /data/scripts/stop_java.sh" sh "rsync -a ${vsiTransfer}/* ${backip}:/data/daJatIng/daJaiang/Micros/" sh "ssh ${backip} /data/scripts/start_java.sh" } } if ((env.Remote_sipAddress =~ '172.16.0.11').matches()) { if ((env.Single_Supdate =~ 'gateway_Service').matches()) { echo "开始更新${Remote_sipAddress}节点的[gateway]服务" sh "ssh ${backip} /data/scripts/source-jar-del-gateway.sh" sh "rsync -a ${vsiTransfer}/daJatIng-cloud-gateway.jar ${backip}:/data/daJatIng/daJaiang/Micros" sh "ssh ${backip} /data/scripts/start_java_gateway.sh" } } if ((env.Remote_sipAddress =~ '172.16.0.11').matches()) { if ((env.Single_Supdate =~ 'Deposit_Service').matches()) { echo "开始更新${Remote_sipAddress}节点的[deposit]服务" sh "ssh ${backip} /data/scripts/source-jar-del-deposit.sh" sh "rsync -a ${vsiTransfer}/daJatIng-cloud-deposit.jar ${backip}:/data/daJatIng/daJaiang/Micros" sh "ssh ${backip} /data/scripts/start_java_deposit.sh" } } } } } } }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:阿里云免费服务器,学生可以申请免费6个月!
下一篇:第三届中国云计算用户大会笔记和心得
相关文章

 发表评论

暂时没有评论,来抢沙发吧~