一、前言

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

二、实现步骤

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

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

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

Jenkins回滚操作

2.1  创建一个流水线项目

Jenkins回滚操作

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

Jenkins回滚操作

 

 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脚本

相关文章:

  • 2022-01-17
  • 2021-08-06
  • 2021-05-22
  • 2021-11-14
  • 2021-09-15
  • 2021-08-20
  • 2022-12-23
猜你喜欢
  • 2021-11-23
  • 2021-06-01
  • 2021-12-10
  • 2022-12-23
  • 2021-10-08
  • 2021-11-01
相关资源
相似解决方案