史蒂夫和斯凯 发表于 2018-1-8 07:56:12

(持续集成)win7上部署Jenkins+MSBuild+Svn+SonarQube+SonarQube Scanner for MSBuild (第二发)

  这一篇进入实战,走起。。。。
  登录jenkins,如下图  
https://images2015.cnblogs.com/blog/555982/201608/555982-20160804221232622-1087392131.png
  点击上图中的“新建”按钮,进入下图
https://images2015.cnblogs.com/blog/555982/201608/555982-20160804222847356-630070092.png
  输入项目名称,选择“构建一个自由风格的软件项目”即可,点击“ok”,跳转到下图
https://images2015.cnblogs.com/blog/555982/201608/555982-20160804221430434-1091600391.png
  svn源代码管理(选择代码管理器中的subversion)
https://images2015.cnblogs.com/blog/555982/201608/555982-20160804221955825-933015110.png
  构建触发器信息维护(什么时候down源代码到本地)
https://images2015.cnblogs.com/blog/555982/201608/555982-20160804222117934-1928442743.png
  第一个的意思是远程触发构建,就是访问url的方式触发构建
  第二个的意思是另一个项目构建完成后,进行构建
  第三个的意思是定时去构建(不论源代码是否有新的commit)
  第四个略过
  第五个定期去构建(有新的commit,才会触发构建)
  第三个和第五个可以自己度娘一下表达式的书写。
  构建
  首先需要在   系统管理--》》Global Tool Configuration 中配置msbuild
https://images2015.cnblogs.com/blog/555982/201608/555982-20160804223654309-533768994.png
  点击“msbuild安装”按钮,弹出下图
https://images2015.cnblogs.com/blog/555982/201608/555982-20160804224006872-1216415728.png
  维护完,保存即可(新建的项目就可以直接选择msbuild了)
  继续回到新建的项目的构建过程。。。。
https://images2015.cnblogs.com/blog/555982/201608/555982-20160804223326450-867783761.png
  选择msbuild版本(msbuild vesion)
  MSBuild Build File (web 项目直接输入解决方案名称如上图)
  Command Line Arguments(构建参数,上图中的第一行是重新生成解决方案;第二行是生成release版本;第三行是生成4.0版本的framwork)
  至此,项目代码的自动获取、编译已经配置完成,接下来就是部署的问题,研究了ftp插件没解决问题,我目前使用的是Hudson Post build task
  因为这个插件可以调用bat,更灵活的进行文件的copy(不管是本地还是ftp服务器的copy)
  https://images2015.cnblogs.com/blog/555982/201608/555982-20160804225313450-1375560659.png
  我添加了两个post build task,分别用来本地copy和ftp服务器的copy
  log text(正则匹配,用来匹配构建结果的,上图正则有bug,请自己看,只怪鄙人正则太垃圾)
  script(调用的bat)
  Run script only if all previous steps were successful(后面注意选中,这个是正则匹配时才会调用下面的call命令)
  (ftp.bat是用来调用ftp命令的,本地一直有问题,打算写个控制台程序专门来处理ftp文件上传,有更好的办法,欢迎拍砖)
  至此,自动获取源代码、构建、部署配置已搞定
  后面还有邮箱通知的,可以自己度娘。
页: [1]
查看完整版本: (持续集成)win7上部署Jenkins+MSBuild+Svn+SonarQube+SonarQube Scanner for MSBuild (第二发)