设为首页 收藏本站
查看: 1182|回复: 0

[经验分享] jenkins-pipeline 自动部署后端的测试环境

[复制链接]

尚未签到

发表于 2018-1-9 21:10:51 | 显示全部楼层 |阅读模式
pipeline{  //参数
  parameters{
  string(name:'Agent_47',defaultValue:'TEST_2',description:'目标节点服务器')
  string(name:'Node_GitUrl',defaultValue:'/home/Node_Git',description:'目标节点服务器的工作空间路径')
  string(name:'Pro_URL',defaultValue:'/home/pro',description:'目标节点服务器的项目部署环境路径')
  string(name:'Cred_ID',defaultValue:'3619798a-5cf2-4f0b-b9b1-4320faf7c4f7',description:'节点服务器和git服务器之间的凭证')
  string(name:'GitHub_Addr',defaultValue:'ssh://XXXX@git.wowocai.com:29418/SQA/Automation/XXX/CRM',description:'git仓库地址')
  string(name:'MAS',defaultValue:'master',description:'git仓库分支标识')
  string(name:'Pro_Name',defaultValue:'XXX_crm',description:'项目ID')
  string(name:'Tomcat_Start',defaultValue:'/usr/data/XXX_crm/bin/startup.sh',description:'项目的tomcat启动文件')
  string(name:'Build_Result',defaultValue:'构建失败,\n构建成功',description:'构建结果')
  string(name:'Email_Reception',defaultValue:'XXXXX@qq.com',description:'邮件接收人')
  }
  //执行者||工作区间,执行路径:Node_GitUrl
  agent{
  node{
  label params.Agent_47
  customWorkspace params.Node_GitUrl
  }
  }
  //options{
  //整个项目的执行时间是0.1小时
  //  timeout(time:0.1,unit:'HOURS')
  //项目执行失败,重试3次,3次后再失败则宣告失败
  //    retry(3)
  
//    }
  //为每个阶段(stage)建设自己的执行者或者工作区间|节点
  stages{
  stage('参数初始化'){
  steps{
  script{
  def BUILD=params.Build_Result.split(",")
  build_faild = BUILD[0]
  build_success = BUILD[1]
  }
  }
  }
  stage('清除工作空间'){
  //steps最小执行单元,cleanWs():清除工作空间
  steps{
  cleanWs()
  }
  }
  stage('代码获取'){
  steps{
  git credentialsId:params.Cred_ID,
  url:params.GitHub_Addr,
  branch:params.MAS
  }
  }
  stage('清楚FSDK项目的CRM所有文件'){
  steps{
  sh "rm -rf ${params.Pro_URL}/${params.Pro_Name}*"
  }
  }
  stage('推送最近拉取的FSDK项目的CRM所有文件'){
  steps{
  sh "mv ${params.Pro_Name} ${params.Pro_URL}"
  }
  }
  stage("环境部署"){
  steps{
  //判断fsdk_crm的进程是否存在,如果不存在则重新启动,如果存在则kill掉该进程,然后重新启动
  sh '''count=`ps -ef |grep fsdk_crm|grep -v "grep" |cut -c 9-15`
  if [ $? -eq 0 ]
  then
  /usr/data/fsdk_crm/bin/startup.sh
  sleep 30
  else
  `kill -9 $count`
  /usr/data/fsdk_crm/bin/startup.sh
  sleep 30
  fi'''
  // sh "ps -ef|grep fsdk_crm|grep -v grep|cut -c 9-15|xargs kill -9"
  }
  }
  }
  post{
  failure{
  echo "构建失败"
  emailext body: '''**************************************<br>
  XXX测试环境 ${build_faild}
  <br>
  **************************************<br>''',
  subject: 'Test',
  to:params.Email_Reception
  }
  success{
  echo "构建成功"
  emailext body: '''**************************************<br>
  ${build_success}
  XXX测试环境已提测部署<br>
  **************************************<br>''',
  subject: 'Test',
  to:params.Email_Reception
  }
  }
  
}
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-433366-1-1.html 上篇帖子: ubuntu 16.04 jenkins pipline的实现 最终docker启动服务 下篇帖子: Jenkins上配置Robot Framework测试邮件通知模板
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表