jenkins版本回滚-jenkinsfile回滚(pipeline回滚实操)

一、系统环境:

操作系统:centos7.8

jenkins版本:2.289.3

二、需求背景

由于在实际的生产环境中,有的项目发布后由于各种原因需要回退到之前的版本,所以我们需要在jenkins上配置版本回滚,方便出现问题后及时回滚到之前版本。

三、具体操作

1、增加参数化构建

        首先需要增加一个参数化构建过程,在每次构建前,会提示我们是否需要发布还是回滚,默认是直接发布的状态。下面也会细讲。

 2、归档成品

        由于回滚的操作,需要把项目的包文件备份到每次构建的任务下,这样在jenkins的每次job下,都会备份一个相对应的包文件,方便版本回滚,我们写入存档的文件,生成对应的脚本文文件。

 3、编辑pipeline脚本

       编辑环境构建语句,如果选择发布就进行构建,如果选择回滚,就将之前归档的包文件,替换到现有路径下。

        将对应的归档脚本增加到pipeline的脚本中,在每次发布完成后,进行包文件归档操作。

stage('环境构建') {
            steps {
                sh '''case $status in
    deploy)
        echo “status: $status”
        mvn clean test package
        ;;
    rollback)
        echo “status: $status”
        echo “version: version”
        rm -rf target
        cp -R ${JENKINS_HOME}/jobs/pipeline-test/builds/${version}/archive/target .
        pwd && ls
        ;;
    *)
    exit
        ;;
esac'''

 4、保存并测试

        构建的时候,要选择进行发布操作还是回滚操作,如果选择回滚操作,需要写入回滚的对应版本。

 5、后期优化

        由于回滚操作会归档每次版本的包文件,长时间运行会导致磁盘增长较快,建议配置成保留的个数或者天数,将之前多余且不用回滚的包文件进行删除。

6、二次判断 

stage('确认确认-2') {
            steps {
                script {
                    def userInput = input(
                        message: '选择继续发布或者回滚操作',
                        parameters: [
                            choice(choices: ['deploy2', 'rollback2'], description: 'deploy2:发布操作;rollback2:回滚操作', name: 'status2'),
                            string(defaultValue: '0', description: '回滚版本号【建议选择前一个可用版本号】,发布操作可忽略', name: 'version2')
                        ]
                    )
                    echo "User selected action: ${userInput.status2}"
                    echo "User provided version: ${userInput.version2}"
                    if (userInput.status2 == 'deploy2') {
                            echo "is deploy2"
                    } else {
                        script{
                            sh "rm -rf target && cp -R ${JENKINS_HOME}/jobs/test-test/builds/${userInput.version2}/archive/target ./"
                            echo "is rollback2"
                        }
                    } 
                }
            }
        }

注: 

以上为本人实际搭建过程中的经验总结,如果有什么问题,可以在评论区留言,大家一起探讨进步!

  • 29
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值