jenkins+gitlab项目回滚

jenkins+gitlab项目回滚

基于jenkins+gitlab项目参数化部署文章编写。

此回滚方案不是最好,仅供参考

所需插件

1. Active Choices

回滚

添加选项参数,配置如下

images

添加参数

images

 

 

 

images

images

groovy脚本

path="/usr/local/backup"
rollback=['bash', '-c', "ls -t1 ${path} "].execute().text.readLines()

if (action.equals("RollBack")) {
  return rollback
  
} else {
  return ["选择RollBack后显示"]
}

添加构建–> 执行shell(放到send files or execute commands over SSH上方,输入框可进行拖拽)

images

shell脚本

#echo $PATH
#node -v
#npm -v
echo $action
ifconfig

qwe=/usr/local/backup/
echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
if [ $action == RollBack ]
then
       shopt -s  extglob 
       cd  $WORKSPACE
        `rm -rf !(.git)`
        tar zxvf /usr/local/backup/$rollback -C .
        echo "开始回滚"
       
else
        echo "开始发布"
       
fi

 

添加构建 —>执行shell (放到send files or execute commands over SSH下方)

images

shell脚本

datetime=`date "+%Y%m%d-%H%M%S"`
backup=/usr/local/backup
if [ $action == RollBack ]
then
        echo "执行回滚操作不做打包操作"
else
if [ -d $backup ]
then
        echo "目录已经存在"
else
        echo "目录不存在,执行创建"
        mkdir $backup
fi
cd $WORKSPACE
echo "开始打包备份"
tar zcvf $backup/$datetime-$BUILD_ID.tar.gz * --exclude=.git
tar zcvf /$JENKINS_HOME/$datetime-$BUILD_ID.tar.gz $WORKSPACE/* --exclude=.git
            
fi

点击左下角保存 完成更改。

点击构建显示效果

images

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏
分享
评论 共8条
    • 麋鹿
    • fsckzy0
      有一个疑问,希望能得到您的回复。 就是回滚的时候能不能跳过 git clone的过程呢?
      2年前回复
      • 麋鹿
        麋鹿作者0
        你好,我这个文档是按执行顺序执行的,不能跳过git clone!我也想过跳过,但是没实现。如果你找到更好的方案希望可以给我推荐一下
        2年前@fsckzy回复
      • 麋鹿
        麋鹿作者0
        或者你可以研究一下构建完成自动打tag。回滚操作就是构建之前的tag。虽然还是需要git clone,但备份在GitLab上好管理。
        2年前@fsckzy回复
    • 麋鹿
    • steven0
      获取不到 备份文件的列表!!!急求
      2年前回复
      • 麋鹿
        麋鹿作者0
        该文档打包备份的文件存在/usr/local/backup/下 备份文件命名为"打包备份时间-构建ID.tar.gz"
        2年前@steven回复
        • 麋鹿
          Steven0
          我能加下您扣扣吗?我邮箱发您了。跪谢了。
          2年前@麋鹿回复
          • 麋鹿
            麋鹿作者0
            未收到你发送的QQ邮件!如果展现不出列表,建议查看一下/usr/local/backup/下是否有备份文件,如果没有展现不出正常。如果有 请查看目录权限!先付于777权限测试一下。
            2年前@Steven回复
            • 麋鹿
              Steven0
              还是不行 我的邮箱是xiaochong@sancellai.com 你方便发我下您的扣扣吗?
              2年前@麋鹿