zoukankan      html  css  js  c++  java
  • Jenkins版本回滚

    一、新建一个自由风格项目
     
    image.png
    二、配置参数化构建过程
    1. 添加选项参数


       
      image.png

      填入以下内容


       
      image.png

      2.添加字符参数
       
      image.png
    三、配置SVN
     
    image.png
    四、配置构建步骤
    1. maven打包配置
    • 选择调用顶层Maven目标,Maven版本之前已经在全局工具配置中设置过,目标中填入打包命令


       
      image.png
    2. 执行shell配置
    • 此脚本为打包备份,回滚脚本


       
      image.png

      填入以下脚本


       
       

      这里 ${WORKSPACE}、${JOB_NAME}、${BUILD_NUMBER}都是jenkins内置变量,这里我把官网的翻译贴出来:

      BUILD_NUMBER
      当前版本号,例如:153
      JOB_NAME
      此版本的项目名称
      WORKSPACE
      作为工作空间分配给构建目录的绝对路径。

      脚本具体内容不难,就是如果选择“Deploy”就执行创建文件夹(用于保存压缩后的文件),然后执行压缩文件,后面我加了一个超过设定时间,就删除文件的句子。因为怕文件太多,占用空间。
      如果选择”RollBACK”,获取到要回滚的BUILD_NUMBER,查找到文件内容包含 BUILD_NUMBER的压缩文件,我就把这个文件复制成为最新的构建文件。
      ————————————————
      版权声明:本文为CSDN博主「aaron是我啊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
      原文链接:https://blog.csdn.net/leo15561050003/article/details/79818176

       
       
      备份回滚脚本
    case $Status  in
      Deploy)
        echo "Status:$Status"
        path="${WORKSPACE}/bak/${BUILD_NUMBER}"      #创建每次要备份的目录
        if [ -d $path ];
        then
            echo "The files is already  exists "
        else
            mkdir -p  $path
        fi
        cp -f ${WORKSPACE}/target/*.war $path        #将打包好的war包备份到相应目录,覆盖已存在的目标
        echo "Completing!"
        ;;
      Rollback)
          echo "Status:$Status"
          echo "Version:$Version"
          cd ${WORKSPACE}/bak/$Version            #进入备份目录
          cp -f *.war ${WORKSPACE}/target/       #将备份拷贝到程序打包目录中,并覆盖之前的war包
          ;;
      *)
      exit
          ;;
    esac
    • 这样发布后以后,就会备份如下


       
      image.png

       
      image.png
    3. 定期删除脚本
    • 项目备份不可能无限制备份,这样很快就会占满磁盘,所以我们必须有清除老旧备份的机制。此处配置一个脚本,每次发布都执行一次,判断备份数是否超过5个,如果超过,则删除老旧备份,只保留最新的5个。
    • 再添加一个执行shell步骤,填入以下脚本,其中备份数量可以自行修改减小或加大


       
      删除老旧备份脚本
    ReservedNum=5  #保留文件数
    FileDir=${WORKSPACE}/bak/
    date=$(date "+%Y%m%d-%H%M%S")
    
    cd $FileDir   #进入备份目录
    FileNum=$(ls -l | grep '^d' | wc -l)   #当前有几个文件夹,即几个备份
    
    while(( $FileNum > $ReservedNum))
    do
        OldFile=$(ls -rt | head -1)         #获取最旧的那个备份文件夹
        echo  $date "Delete File:"$OldFile
        rm -rf $FileDir/$OldFile
        let "FileNum--"
    done 
    五、配置发送到远程tomcat目录
     
    image.png

    其中Source files要注意配置正确,否则发送不了war包,我的jenkins该项目的workspace如下:


     
    image.png
    六、发布
    • 回到项目主界面,点击Build with Parameters
     
     
    • 发布选择Deploy--->开始构建,即可开始发布。


       
      image.png
    • 回滚选择Rollback--->输入回滚版本---->开始构建,版本号从构建历史中选择一个输入


       



    作者:linjiajiam
    链接:https://www.jianshu.com/p/af5fecaa8357
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    SSM框架使用遇到的问题
    《深入浅出wpf》第四章 x名称空间详解
    《深入浅出wpf》第三章
    《深入浅出wpf》第二章
    《深入浅出wpf》第一章
    《深入浅出wpf》序
    opencv2411配置
    k均值
    qt新建类报无法解析外部符号(link错误)
    fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  • 原文地址:https://www.cnblogs.com/ling-yu-amen/p/11835275.html
Copyright © 2011-2022 走看看