设为首页 收藏本站
查看: 1199|回复: 0

[经验分享] 浅谈.net jenkins svn下自动化集成环境安装 搭建 配置

[复制链接]

尚未签到

发表于 2018-1-7 08:05:47 | 显示全部楼层 |阅读模式
  本人做.net研发已有3年多了,之前一直偏向于技术研究,自己学了很多技术,现在突然发现学了那么多技术有什么用呢?真正用到的并不多。
  现在?算是一只小鸟吧,自嘲下.....毕竟我是90后,很多领导对于90后这个词没有信任感,相信很多小伙伴都有这样的体会。
  好啦,不说那么多了,进入正题,第一次写,有错指出来,大家一起分享,一起学习
  首先,你得下载jenkins:https://jenkins-ci.org/content/thank-you-downloading-windows-installer/ 安装,

  安装完成后,它自己会打开jenkins的管理页面,端口默认是8080(需要修改在jenkins安装根目录jenkins.xml中修改端口号即可),ok,继续,我们选择系统管理-管理插件,

  这时候你的界面可能没有那么多插件可选,(可更新、可选插件、已安装、高级)都点下找到 立即获取点击,刷刷页面坐等ing.....好了如下图:

  然后在 可选插件 中找到 MSBuild Plugin,勾上点击直接安装,此时自动构建插件已安装完毕,其实就是调用VS的命令行生成平台MSBuild,如需发布插件(根据个人需求,前面的插件是将svn服务器中的最新代码生成出来,这个插件是发布,简单点说就是代替人工copy文件到服务器)请继续安装 Hudson Post build task,操作与之前一致,
  ok,进入系统管理=>系统设置,在MSBuild节点处点击 新增MSBuild,填入名称和MSBuild路径,MSBuild路径一般为C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSbuild.exe,根据需求自行配置。那么问题来了,服务器里面没有安装VS哪来的MSBuild?其实将开发机上的C:\Program Files (x86)\MSBuild文件夹直接拷贝到服务器中即可,或者你可以选择单独安装。
  ok,保存。

  接下来开始新建Job

  在 源码管理 处选择Subversion,输入你的svn地址,如果有帐号密码点击 enter credential 输入,


  接下来,配置构建:


  MSBuilder Version 为之前配置的 MSBuild v4.0.30319
  MSBuild Build File 是解决方案文件或者项目文件的名称
  然后就是MSBuild的命令行参数了。
  /t:Rebuild 表示每次都重建,不使用增量编译
  /property:Configuration=Release 表示编译Release版本,
  /property:TargetFrameworkVersion=v4.5表示编译的目标是.NET 4.5版本
  我们先构建测试下,不想测试的可以忽略。

  完成后在Console Output中可以看构建情况,

  这里我碰到一个问题,一直生成失败,VS可以正常生成,这里却报错,原因是我其中一个项目中的引用的为X86版与该项目的的X64版不一致造成,解决该问题或是在项目属性=>生成=>Release的生成序列化程序集设置为关闭

  解决错误,0个错误成功.....

  继续,我们接着配置Job,配置构建后操作(实际为生成成功后需要做的事情):


  \b0\s+(个错误) 是正则检索0个错误
  当检索到0个错误后,执行F:\Test\xxxxx\Build.bat 批处理文件,这里我们将bat文件放在服务器 jenkins安装目录=>workspace=>Test(jenkins Job名称),或者是直接将bat文件上传到svn服务器跟解决方案文件放在一起)

  Build.bat文件,根据自己的实际编写,
  我这里实际做的就是生成出来的文件放置 bat文件所在盘符/TextWeb/Web中,这里值得注意的是需要 编辑器 自定义,也就是在BBBBBBBBBBB.csproj中添加Name="PublishToFileSystem"  的Target节点
  

@echo off  
cd %~dp0
  
%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe ".\AAAAAAAAAA.sln" /m /t:Clean;Build /p:Configuration=Release /distributedFileLogger
  
if %errorlevel% NEQ 0 echo solution compile failed
  
if %errorlevel% NEQ 0 goto END
  

  
echo compile is successful, starting deploy
  

  
echo 1.deleting TextWeb directory
  
rd /s/q TextWeb
  

  
echo 2.deploying file to TextWeb directory
  

  
%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe ".\path\BBBBBBBBBBB.csproj" /t:PublishToFileSystem /p:Configuration=Release;PublishDir="..\TextWeb\Web" /distributedFileLogger
  
if %errorlevel% NEQ 0 echo Client deploy failed
  
if %errorlevel% NEQ 0 goto END
  

  
:END
  
if %errorlevel% NEQ 0 (
  
if "%autoBuild%" EQU "1" (exit /b %errorlevel%)
  
pause
  
)
  


  

  <Target Name="PublishToFileSystem" DependsOnTargets="PipelinePreDeployCopyAllFilesToOneFolder">  
<Error Condition="'$(PublishDir)'==''" Text="The PublishDir property must be set to the intended publishing destination." />
  
<MakeDir Condition="!Exists($(PublishDir))" Directories="$(PublishDir)" />
  
<!--http://msdn.microsoft.com/en-us/library/3e54c37h-->
  
<ItemGroup>
  
<PublishFiles Include="$(_PackageTempDir)\**\*.*" />
  
<!--Dlls in Lib folder, AdminBLL, BLL, BLL config, Custom component service, Repositories-->
  
<!--<DllFiles Include="$(MSBuildProjectDirectory)\..\Lib\**\*.*;$(MSBuildProjectDirectory)\Bin\*BLL.dll*.*" />-->
  
</ItemGroup>
  
<Copy SourceFiles="@(PublishFiles)" DestinationFiles="@(PublishFiles->'$(PublishDir)\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
  
<!--<Copy SourceFiles="@(DllFiles)" DestinationFiles="@(DllFiles->'$(PublishDir)\Bin\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />-->
  
</Target>
  

  大功告成!尽情享受吧~根据需求可在jenkins中配置发布失败邮件发送,添加一些用户来维护等等.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432459-1-1.html 上篇帖子: 第十六章:配置Jenkins用户和权限 下篇帖子: Jenkins启动、停止脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表