jenkinsfile or pipline 实现微服务自动发布回滚流程



1
#!/usr/bin/env groovy Jenkinsfile 2 node { 3 //服务名称 4 def service_name = "**" 5 //包名 6 def service_bag_name = "**.jar" 7 //制品库目录 8 service_product = "/data/server/**/project-demo" 9 //工作目录 10 workspaces="/data/**/**-${service_name}" 11 12 if(choice_status=="delop" && choice_build_number==""){ 13 //拉取git代码/maven编译/归档成品 14 stage('Build'){ 15 //创建制品库 16 ws('/data/server/jenkinsworkspaces/pipline-demo') { 17 // some block 18 //拉取git分支代码 19 git branch: 'test', credentialsId: '**', url: 'http://gitlab.lalala.cn/**/**.git' 20 //maven编译 21 sh label: 'maven编译', script: '/data/server/maven/bin/mvn clean install' 22 //成品归档,便于后期开发验证成品包是否可用 23 archiveArtifacts artifacts: "**/target/${service_bag_name}", onlyIfSuccessful: true 24 } 25 } 26 //生成制品 27 stage("artifacts"){ 28 echo "Running ${env.BUILD_ID} on ${env.JENKINS_URL}" 29 //创建制品库 30 dir("${service_product}/${service_name}/${env.BUILD_ID}") { 31 // some block 32 writeFile file:'dummy', text:'' 33 } 34 //将成品文件存放入制品库 35 //此处省略,通过将将成品文件存放入制品库 36 } 37 38 stage("Test"){ 39 echo "testing...." 40 echo "${workspaces}" 41 //此处省略,验证制品库中成品文件是否可用 42 } 43 44 stage("Deploy"){ 45 echo "deploying...." 46 //1.查找制品库中需要发布的文件,通过scp方式传输至服务器服务运行目录 47 //2.查找制品库中需要发布的文件,通过jenkins sedn build artifacts over ssh方式传输至服务器服务运行目录 48 } 49 50 }else if(choice_status=="rollback" && choice_build_number!="") { 51 stage("Rollback"){ 52 echo "rollbacking...." 53 echo "${service_name}" 54 echo "${service_bag_name}" 55 echo "${choice_build_number}" 56 sh label: '查找成品文件', script: """ls -lh ${service_product}/${service_name}/${choice_build_number}""" 57 } 58 59 } 60 }

部分代码已省略,请自行脑补,服务启动脚本需要自行编写,本文暂不描述.

 

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM