jenkins发布回滚流程

公司基本都是用PHP写的后台代码,所以决定做一个jenkins自动构建代码,省着总让我手动一个一个文件传。
我要达到的最终目的是:在一个项目里面可以选择发布和回滚,构建过程清晰明了。
我的心路历程是这样的:
首先架构情况为gitlab和jenkins都是在本地,服务器都是买的云服务器,所以要在本地打包,接着通过jenkins的Send build artifacts over SSH插件上传到云服务器
然后之前用Phing插件做了一个只能发布,不能回滚的build.xml。也没细研究,肯定也能用它做回滚。用这个做的好处就是构建时候,构建过程特别清晰,明了。因为没细研究,所以我就用参数化构建,接着写一个脚本完成的。这样做就是我要的最终目的–清晰明了没达到,总感觉乱乱的,毕竟看过Phing之后,别的就没法看了
最后就是创建过程

注意:这里不推荐这种构建方案,比较费资源,代码打包都是打包整个项目,还需要上传至云服务器,还比较慢。

1.添加参数化构建过程

这里写图片描述

2.添加源码管理

这里写图片描述

3.添加构建步骤Execute shell

这里写图片描述

case $Status in
	Deploy)
		echo "status: $Status"
		path="${WORKSPACE}/dist"
		if [ -d $path ];then
			echo "The file is already exists!!!"
		else
			mkdir -p $path
		fi
		cd ${WORKSPACE}
		tar czf dis/${JOB_NAME}-${BUILD_NUMBER}.tar.gz * --exclude=dist
		find ${WORKSPACE}/dist -mtime 2 -name "*.tar.gz" -exec rm -rf {} \;
		echo "Completion!!!"
		;;
	RollBACK)
		echo "Status: $Status"
		echo "version: $Version"
		file_old=`ls ${WORKSPACE}/dist | grep $Version`
		cd ${WORKSPACE}/dist
		cp -R $file_old ${JOB_NAME}-${BUILD_NUMBER}.tar.gz
		;;
	*)
	exit
		;;
esac

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

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

脚本具体内容不难,就是如果选择“Deploy”就执行创建文件夹(用于保存压缩后的文件),然后执行压缩文件,后面我加了一个超过设定时间,就删除文件的句子。因为怕文件太多,占用空间。
如果选择”RollBACK”,获取到要回滚的BUILD_NUMBER,查找到文件内容包含 BUILD_NUMBER的压缩文件,我就把这个文件复制成为最新的构建文件。

4.添加构建后操作(用于把本地压缩好的文件上传到云服务器上)

这里写图片描述

Source files:
dist/${JOB_NAME}-${BUILD_NUMBER}.tar.gz

Exec command:
cd /PATH
tar -zxf ${JOB_NAME}-${BUILD_NUMBER}.tar.gz -C /PATH
source /usr/local/script/jenkins_delete_old.sh

最后就是把压缩好的文件上传到云服务器上,并解压到指定目录。

最终效果图如下:

这里写图片描述

这种方法可能比较蠢,但是还算比较简单高效。这里面写出了一些我的心路历程,就是我在制作前期所想的,在网上找到相关资料可能很多都跟我要的不匹配,所以就自己写了一个。如果有更好的办法,请大神们不吝赐教

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值