本文测试环境: ASP.NET MVC项目,Windows 7环境,SVN代码仓库, MSBuild,TortoiseSVNjava
持续集成这种工具不少了,Jenkins比较经常使用,他的原理就是一个服务,有一个管理网站,能够去你指定的代码仓库获取代码文件,能够设置何时,什么状况下去触发,到仓库获取文件。通常的用法是开发者commit代码到仓库时,Jenkins获取最新的代码,编译生成发布,执行单元测试等,copy到测试环境(部署),这一整个过程的自动化执行,而且伴随开发过程当中的代码提交,这个过程一直在执行,Jenkins就是这样一个工具。这样作的目的是,一个项目有N个模块时,每一个人只开发本身的一些模块,每完成一次提交,经过持续集成就能检测整个项目系统的状况,防止等到最后发现某一个模块有问题。试想一下,一个设备有N个零件组成,当设备在组装时已经确认全部零件是合格的,由于每一个零件完成时都作了严格的测试。若是有零件不合格,到组装成品时才发现,这个影响就大了。windows
Jenkins的安装,没什么好说的,官方下载,按跟说明作就好了(须要java环境)。安装完须要安装一些插件,注意Jenkins有N多的插件能够选择,我这里安装了MSBuild, Subversion等,有些插件是有依赖项,它会自动安装相关的依赖。工具
安装完须要的插件后,就能够添加任务了。录入任务信息,设置源代码仓库的位置、账号,怎么触发,怎么构建等等。单元测试
由于我上面只安装的subversion,这里会出现一个subversion的选项,配置好项目的SVN地址,SVN访问账号等。其它Jenkins下面还有Git等其它插件。测试
触发设置,就是在什么状况下Jenkins从代码仓库获取文件,注意看这里有好几个选项,点击?图标有提示。常见的有Jenkins去轮询SVN是否有新的提交(SCM),若有则执行;还有一种是在SVN端设置一个触发钩子,当有新的提交时通知Jenkins。这里使用SCM方式,日程表就是轮询的频率设置,这个和Linux里的Contab表达式是同样的,此处为周一到周五天天的9:00到18:00,每隔5分钟轮询一次。网站
拿到代码之后,如何构建,这个就是重点了,我这里是.NET项目,那就用MSBuild工具来编译生成了,其它平台有对应的插件和工具,关于MSBuild是一个很是强大的命令行工具,能够查询MSDN或MSBuild /h查看详情。ui
注意看这里的构建步骤,能够有不少个,你能够根据实际状况,前后顺序来作不少步的处理,能够把相关的操做放到一个bat或者ps1脚本里来处理,我这里处理步骤是下载完源代码后,先还源nuget引用 (这里使用了nuget官方提供的windows上的命令行工具nuget.exe),而后调用MSBuild编译生成。这一步的配置,能够先在命令行测试一下。(后面的发布,测试,部署我尚未试)插件
任务添加完以后,就能够在Jenkins里自动执行了,或者点击“当即构建”测试一下。命令行
点击构造记录,能够查看本次运行的详细信息,还能够看控制台输出等信息。3d