Jenkins配置MSBuild实现自动部署2(项目实践)

继上一篇文章http://www.cnblogs.com/EasonJim/p/6077225.html,大体实现的思路,今天来记录一个真实项目实践。html

1、新建项目

选择【构建一个自由风格的软件项目】,其他的不要去选择。java

2、项目配置

一、项目名称

二、SVN迁出代码配置

注意:若是时git就配置相应的git操做git

说明:web

【Credentials】为svn的帐号密码,经过【Add】按钮进行配置。以下:windows

Local module directory】这个路径时源代码迁出时存放的路径,切记,这里的路径时相对路径,相对于jenkins的workspace的路径,而不能时绝对路径。服务器

其他都按照上面进行配置,主要实现了都有更新时自动迁出源代码的功能,并触发下一步的构建流程。svn

三、配置构建触发器

这里的触发器时定时去查看svn是否有更新,有则进行下一步构建流程。测试

上面我配置的时每分钟进行svn的检查,若是想要不一样的配置时间,点击后面的问号进行查看。ui

四、构建前批处理删除工做空间文件夹

注意:这一步可选操做,因为个人项目特殊缘由,因此须要每次在构建前先清空文件夹的内容spa

批处理以下:

echo [INFO] 清除编译后输出的文件
mkdir %workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\
del /F /S /Q %workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\
cd %workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\
rd /S /Q %workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\

五、配置MSBuild进行项目编译

 

说明:

【MSBuild Version】是须要本身手动去配置的,配置方法以下:

【系统管理】->【Global Tool Configuration】->【MSBuild】,点击【新增MSBuild】进行版本的添加,以下:

【MSBuild Build File】为Web工程的绝对路径,可是可使用环境变量,即jenkins的工做空间%workspace%进行定义,也就是上面svn迁出代码存放的路径。

【Command Line Arguments】为MSBuild的命令行运行参数,这里我定义了程序使用Release版本,并配置了输出路径,脚本以下:

/p:OutputPath=%workspace%\BuildOutProject\Shop\1.1.0.123_Test;Configuration=Release 

一样,这里的输出路径只能是绝对路径,不过可使用环境变量去定义。

详细的MSBuild参数列表,参考:https://msdn.microsoft.com/zh-cn/library/ms164311.aspx

六、构建完成后清理不要的文件

这一步是可选操做,好比我编译输出时,web.config这些文件我是不须要上传到测试站点的

命令以下:

echo [INFO] 删除编译后不须要上传的文件
del /F /Q /S %workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\bin\*.pdb
del /F /Q /S %workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\bin\*.xml
del /F /Q /S %workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\*.pdb
del /F /Q /S %workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\packages.config
del /F /Q /S %workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\Web*.config

rd /S /Q %workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\Areas\CMS\

提示:这个脚本里面包括了清楚文件和文件夹的。

七、进行压包

这一步可选,能够直接是跳到FTP进行每一个文件上传,或者使用xcop进行复制。

批处理以下:

echo [INFO] 压缩要上传的文件
cd %workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\
call C:\"Program Files"\WinRAR\Rar.exe a -k -r -s -m1 -agYYYYMMDD-NN{-Upload-%BUILD_ID%} %workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\

 提示:这里的文件命名采用了有规律的命名方式。

八、配置ftp上传

 

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

安装插件【Publish Over FTP

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

 

注意:

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

BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\*-Upload-*.rar 

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

BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\

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

wwwroot\bak

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

提示:ftp上传文件时多一点使用通配符,好比要上传1uplad2016.rar文件,可使用*upload*.rar这样的通配符,而目录后面\**,这样表明包括子目录任何文件。

九、上传完成后调用远程cli进行解压

前提:远程服务器必须配置了部署的工程,参考:http://www.cnblogs.com/EasonJim/p/6086168.html

若是不是压包上传,上面ftp那一步就已经结束了。

批处理以下:

echo [INFO] 经过CLI调用公网Jenkins进行解包
set "fileName="
for %%a in (%workspace%\BuildOutProject\Shop\1.1.0.123_Test\_PublishedWebsites\Jsoft.Web\*-Upload-*.rar) do (
 set "fileName=%%~nxa"
)
java -jar "C:\Program Files (x86)\Jenkins\war\WEB-INF\jenkins-cli.jar" -s http://192.168.199.2:8081/ build Unzip -p FilePath=d:\wwwroot\wwwroot\bak\%fileName% -p UnzipPath=d:\wwwroot\wwwroot\wwwroot --username administrator --password administrator

提示:上面是经过批处理进行文件的查找,查找到打包的文件,而后经过远程cli进行调用。

提示2:cli在调用时在windows上会由于权限问题而限制,须要进行特殊设置,参考:http://www.cnblogs.com/EasonJim/p/6086018.html

十、邮件发送配置

提示:采用的是邮件扩展插件配置,参考:http://www.cnblogs.com/EasonJim/p/6068002.html

提示:附带上构建日志到邮件中。

这里选择全部状况都发送。

到此,整个项目实战完成。

相关文章
相关标签/搜索