Jenkins回滚操作

一、前言

     公司项目已配置好Jenkins自动构建,发版,接下来还需要配置项目指定版本的回滚。

二、实现步骤

    思路:构建项目的时候,选择发版或者回滚,定义一个Jenkins变量 deploy_env ,

如果发版,deploy_env==deploy,则拉取最新代码,

选择回滚,deploy_env==rollback,回滚指定到版本

2.1  创建一个流水线项目

 2.2 创建选项参数和字符参数

 

 2.3  pipeline 语法

 steps {
    script {
        if ("${deploy_env}"=="deploy") {
        echo 'start pull latest code'
        sh "/data/fxshop/${PROJECK}/deploy.sh /${PROJECK}"
        } else {
        echo "start rollback ${version}"
        sh "cp -R ${JENKINS_HOME}/jobs/${PROJECK}/builds/${version}/archive/*.tar.gz ."
         }
    }
    }
#!groovy
pipeline {
agent any
environment{  
    ITEM="fxshop"
    PROJECK="test"
}
stages {
  stage("获取代码") {
    steps {
    deleteDir()
    script {
        if ("${deploy_env}"=="deploy") {
        echo 'start pull latest code'
        sh "/data/fxshop/${PROJECK}/deploy.sh /${PROJECK}"
        } else {
        echo "start rollback ${version}"
        sh "cp -R ${JENKINS_HOME}/jobs/${PROJECK}/builds/${version}/archive/*.tar.gz ."
         }
    }
    }
    }
    
  stage("发版") {
      steps {
          echo "start deploy"
          sh "scp -P 62222 *.tar.gz 1.1.1.1:/opt/ops/new/${PROJECK}.tar.gz"
          sh "ssh -p 62222 root@1.1.1.1 'tar -zxvf /opt/ops/new/${PROJECK}.tar.gz -C /opt/www/${PROJECK}/'"
      }   
   }
   stage("完成") {
      steps {
          echo "finish!"
          archiveArtifacts '*.tar.gz'
      }   
   }
}
}
完整的pipeline脚本

 

 

 

posted @ 2019-09-21 20:13  人生是一场修行  阅读(2167)  评论(0)    收藏  举报