一、前言
公司项目已配置好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' } } } }