jenkins发布回滚流程

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

1.添加参数化构建过程

这里写图片描述

2.添加源码管理

这里写图片描述

3.添加构建步骤Execute shell

这里写图片描述

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

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

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

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

这里写图片描述

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

最终效果图以下:

这里写图片描述

这种方法可能比较蠢,可是还算比较简单高效。这里面写出了一些个人心路历程,就是我在制做前期所想的,在网上找到相关资料可能不少都跟我要的不匹配,因此就本身写了一个。若是有更好的办法,请大神们不吝赐教svg