Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)

时间:2021-12-01 08:17:59

注意:这篇文章涉及到两台服务器:1为测试服务器。2为正式服务器。且,两台服务器都必须安装了jenkins。

注意2:这里所说的一键部署是指从测试服务器到正式服务器的发布功能。

提示:如果出现CLI调用的权限或者错误问题,参考:

具体操作: 一、配置正式服务器的工程

选择构建项目时,选择【构建一个*风格的软件项目】

查看原图

1、解压工程:

查看原图

查看原图

查看原图

命令行:

echo [INFO] 备份压缩操作 call C:\"Program Files"\WinRAR\Rar.exe a -x*\Upload* -x*\ueditor* -x*\UploadFolder* %FilePath%.bak.rar %UnzipPath% echo [INFO] 解压操作 call c:\"Program Files"\winrar\rar.exe x -ep2 -o+- %FilePath% %UnzipPath%

说明:

先备份再解压,也就是说每一次操作之前都要备份。

1)部署时,比如上传的文件名为1.rar,那么备份文件为1.rar.bak.rar。

2、还原工程:

查看原图

查看原图

查看原图

命令行:

echo [INFO] 备份压缩操作 call C:\"Program Files"\WinRAR\Rar.exe a -k -r -s -m1 -x*\Upload* -x*\ueditor* -x*\UploadFolder* -x*\Web.config -x*\DownloadFile* -x*\ErrorLog* -x*\LogFiles* %FilePath%-%BUILD_ID%.restorebak.rar %UnzipPath% echo [INFO] 解压操作 set "url=%UnzipPath%" call c:\"Program Files"\winrar\rar.exe x -ep2 -o+- %FilePath% %url:~0,3%

说明:

先备份再解压,也就是说每一次操作之前都要备份。

0)压缩时我加入了buildid作为参数,避免还原同一个时会重复的问题。

1)回滚时,比如上传备份的文件名为1.rar.bak.rar,那么回滚操作备份文件为1.rar.bak.rar.restorebak.rar。

2)这里由于上面备份的压缩包是全路径的,所以我用字符串切割提取到盘符直接解压。

二、配置测试服务器的工程 1、一键部署工程:

选择构建项目时,选择【构建一个*风格的软件项目】

查看原图

1)配置工程信息:

查看原图

2)配置批处理进行压缩:

查看原图

说明:这里采用规则的命名方式,且最后会拷贝到workspace中,因为ftp上传软件只支持当前工作空间的目录。

批处理如下:

echo [INFO] 压缩要上传的文件,这里已经排除了一些文件 cd D:\wwwroot\nhq\wwwrootcall C:\"Program Files"\WinRAR\Rar.exe a -k -r -s -m1 -x*\Upload* -x*\ueditor* -x*\UploadFolder* -x*\Web.config -x*\DownloadFile* -x*\ErrorLog* -x*\LogFiles* -ag{%BUILD_ID%.push} D:\wwwroot\nhq\wwwrootmove %BUILD_ID%.push.rar %workspace%

3)配置FTP上传:

查看原图

在【Name】上选择的server是需要手动进行配置的,如下:

安装插件【Publish Over FTP】

在【系统管理】->【系统设置】->【Publish over FTP】->点击【增加】按钮,增加一个要连接的FTP:

查看原图

注意:

【Source files】表示的不是绝对路径,而是jenkins的workpase的路径,相当于相对路径,如果要上传整个目录包括子目录的,最后加上【\**】;

【Remove prefix】表示去除目录前缀,如果不去除,将会按照上面的目录依次创建。

【Remote directory】为ftp的存放目录,如果上面没有这个目录将会自动创建。

【Exclude files】为要排除的文件和文件夹,上面为参考。

4)配置CLI的调用服务:

注意:这里是直接调用正式服务器的cli服务。

查看原图

批处理如下: