jenkins + Git 搭建持续集成环境

  持续集成经过自动化构建、自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,下降了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态。jenkins是目前普遍应用的持续集成工具,本文记录我使用jenkins+Git配置持续集成环境的整个流程以及踩到的坑(jenkins过程的坑每每不是在第一次配置,而是在配置结束后更改某些配置项的时候踩到)。html

  整体流程以下:git

  tomcat8.0下载地址:http://tomcat.apache.org/web

  jenkins下载地址:http://jenkins-ci.org/正则表达式

  下载完毕后,将jenkins.war丢入tomcat/webapps目录下。apache

  默认状况下,jenkins的工做空间会放到C:\Users\Account\.jenkins目录下,,如过想要更改工做空间,咱们须要在系统环境变量里面配置JENKINS_HOME变量,将该变量指向目标工做空间。这里须要注意的是,tomcat启动状况下,jenkins不会去读JENKINS_HOME变量,必需要重启tomcat。而重启tomcat也是有坑的,若是tomcat是经过命令行执行tomcat/bin/startup.bat目录启动的,那么单单停掉tomcat没用,必需要将前面提到的命令行一并关闭掉,这时重启tomcat,jenkins才会使用JENKINS_HOME中配置的目录做为工做空间。此外,一旦更换工做空间,此前过于jenkins的全部配置都将做废tomcat

  咱们的产品使用Git做为版本管理工具,而jenkins须要git插件来支持git,因此咱们须要为jenkins添加git插件。安全

  在Available tab页中找到Git Plugin服务器

  点击下方的Install without Restart安装插件。app

 

  插件安装完毕后,咱们须要在jenkins中配置Git.exe的位置。ssh

 

  点击保存,jenkins总体的配置能够告一段落,下面咱们来建立和配置job。

  

  点击左侧的New Item,选择一个自由风格的job,点击OK。

  在源码管理工具(Source Code Management)中选择Git,添加Git仓库、添加Git证书、选择一个分支:

  关于证书咱们选择,SSH形式:

  这个key跟咱们在gitHub中配置公有秘钥的道理是同样的,jenkins调用git命令去Git服务器上pull代码,git服务器经过检查公钥私钥来保证安全性。若是机器上没有git的ssh key须要本身动手生成一个

  若是Git仓库有子仓库,咱们须要对子仓库进行配置,这里选中循环更新全部子仓库:

  持续集成的目的不是简单的将源码下载下来,而是经过持续集成进行单元测试、自动化测试、自动构建发布。因此在源码下载完毕后须要执行的命令能够放到Buid部分:

  这里咱们使用bat命令:

cd %workspace%\client\buildScripts\
build.bat
cd "yourPath"\buildOutput
xcopy stem \\NAO\webapp /Y /E

  上面命令的意思是:

  进入buildScripts目录,%workspace%是jenkins提供的环境变量,指向咱们job的工做空间,强烈建议使用该环境变量。

  执行build.bat命令,build.bat中调用其余命令执行build脚本。

  进入buildOutput目录

  将buildOutput中的stem下全部内容拷贝到NAO机器的共享目录中。

 

  点击保存,进入到咱们刚刚建立的job的控制界面中,点击Build Now,即可以开始咱们的持续集成的旅途了。

  点击某一次具体的构建,咱们能够查看日志输出:

  

  注意这里的构建并不检查build.bat中的错误和输出,换句话说若是build.bat失败,本次构建过程不会失败。解决方法是使用jenkins的Log Parser插件,同使用Git Plugin同样,在插件管理中找 Log Parser插件,并添加。添加完毕后,配置jenkins中的Console Output Parsing

  rule的具体规则语法可使用正则表达式,具体能够参考Log Parser插件的文档http://my.oschina.net/donhui/blog/382592

  Parsing Rules File的配置同上文的配置工做目录具备同样的坑,若是要更新规则,首先要清除job中选中的规则,而后删除此处配置的Parseing Rule,重启tomcat。

  添加完毕后,在job的配置页的 Post-Build Actions部分选中Console Output parsing

  而后进行以下配置:

  这样咱们能够对buld.bat中的error进行捕获,而且在某次构建过程的Parsed Console Output中进行查看