构建基于Jenkins + Github的持续集成环境(转)
转自: http://blog.csdn.net/john_cdy/article/details/7738393
搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路。持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集成的基础上收到反馈并加以改进,不必等到开发的后期才寻找和修复缺陷。当然要明白的是持续集成环境的搭建也不是一劳永逸的,随着软件项目复杂度的增加,持续集成的环境同样要加以维护以确保集成环境的可靠性。
持续集成的重要要素:1.统一的代码库。
2.CI服务器
3.自动化测试和构建的脚本
4.Slaves
持续集成的流程:CI服务器控制持续集成的整个过程,轮询代码库更新,根据预定义的脚本进行项目的构建,服务器将任务分配到Slave端。这就是整个持续集成的过程,我们需要根据我们的项目需求,制定好一个完善的持续集成方案,然后根据方案选择CI服务器和版本管理软件,我们的项目选择了Jenkins+Github的持续集成环境,这也是我要主要和大家讲述的。
为什么要选择Jenkins?
Jenins是现在非常流行的持续集成CI服务器,这与它的前身Hudson也有着很大的关系,Jenkins易于安装,不需要数据库的支持,直接通过Web界面进行配置,而且集成了RSS/Email的通知机制,支持分布式构建,具有丰富的插件,这些都是Jenkins相比其他持续集成服务器的优势所在。
对于版本控制软件的选择要看项目需要了,可能是SVN也可能是Git,一般来说Jenkins都有提供插件支持,下面讲解一下Jenins+Github持续集成环境搭建的细节。
这个持续集成环境构建的主要流程就是Jenins会在后台运行,轮询版本控制的存储库,当发现版本库出现变更,就会通过预定义的构建脚本进行项目的构建,Jenkins会根据项目需求将构建的任务分配到Slave端。一般的项目构建过程主要分为自动化编译和自动化测试两个阶段,这同样是你脚本发挥作用的阶段。
1.Jenkins安装 进入Jenkins官方网站下载最新的Jenkins,Jenkins提供war包的下载和各种操作系统的安装文件,选择war包即可。 Jenkins的启动方法有两种: 第一种是使用tomcat直接打开,就是把jenkins.war放入tomcat下的 webapps目录下,当启动jenkins时,就会自动在webapps下建立jenkins目录。然后再浏览器的地址栏输入http://localhost:8080/jenkins 另一种方法要确保系统中安装了jdk,并且配置了环境变量,检测方法就是在命令行输入java回车后有多行的命令符提示。直接在命令行输入java -jar jenkins.war即可启动jenkins,默认会运行在8080端口,切换到浏览器的地址栏输入http;//localhots:8080,localhost可以改成ip地址。 看到Jenkins的页面说明jenkins已经部署成功了。
2.插件安装 在"系统管理->插件管理"下可以看到Jenkins缺省安装了CVS,Subversion,Maven和SSH,这些主要是版本控制的软件的相应插件,不过我们使用的是GitHub进行版本控制,所以要在可选插件中选择安装Git plugin和GitHub plugin插件,安装之后重新启动就可以看到新的插件已经生效。
3.环境配置 进入"系统管理->系统设置"设置Jenkins的相关参数。主要是设置Git和GitHub插件的参数,在Git下的Path to executable一栏添加本机的git.exe的路径,在Git plugin下的添加本地Git的user.name和user.email的信息,在GitHub Web Hook下添加GitHub账户的相关信息。如果想要使用邮件的功能,需要在邮件通知的一栏添加SMTP服务器和邮箱的相关信息,添加后点击Test的按钮测试一下能否正常发送邮件,这一功能可以在后面的项目中使Email Notification功能得以正常使用。
4.构建项目 点击"新Job",输入"任务名称",选择"构建一个自由风格的软件项目",点击"OK"。系统自动进入"任务配置"界面。
5.配置构建方法 在GitHub project中输入git地址。
在"源码管理->Git"下的Repository URL输入Repository的Git地址(PS:可以选择分支)。
在"构建触发器"中选择"Build when a change is pushed to GitHub "和"Poll SCM ",这两项的作用分别是当GitHub有版本库更新时触发Jenkins进行构建和定期检查版本库是否有更新,如果有更新则触发Jenkins进行构建。这里要注意Schedule语法,例如"*/2 * * * *"表示每隔2分钟检查一次。
点击增加构建步骤,选择Execute Windows batch command,并输入 "%VS10COMNTOOLS%..\IDE\devenv.com" "%WORKSPACE%\Test.sln" /Build "Debug|Win32",devenv.com是MSVC提供的命令行构建工具,这里的"%VS10COMNTOOLS%..\IDE\devenv.com"为devenv.com的路径,如果没有配置响应的环境变量,构建的时候就会找不到路径,所以可以用devenv.com的实际路径代替。在"构建后操作"中可以添加发送邮件的相关信息。
点击保存,项目的配置就完成了,点击立即构建,Jenkin就会从github上将代码clone下来,这里我在github上存放了一个HelloWorld的vs项目,所以我的命令行为"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com" "%WORKSPACE%\HelloWorld\HelloWorld.sln" /Build "Debug|Win32",然后自动编译项目,如果构建成功会是蓝色标记,如果构建失败会是红色标记。
构建完成后可以在项目中看到项目构建的具体信息,如工作区、变更集和每次构建的控制台输出等。这就是一个基本的基于Jenkins和GitHub的持续集成环境的搭建。
Tips: 1.对于刚接触Jenkins的同学可能有很多需要配置的地方不知道要怎么填,这时可以点击每一个填空后的?,就会弹出详细的提示。
2.官方的wiki是很好的入门教程https://wiki.jenkins-ci.org/display/JENKINS/Home
3.多多实践,多多查看Jenkins配置的使用方法~~
以上我说的方法都是比较简单的方法,可以方便你快速进行搭建,Jenkins的搭建有很多种方法,例如使用Tomcat,Java web等等,我在资源栏上传了一本英文版的介绍Jenkins的书,是官方推荐的书籍,讲的很详细,需要的可以去下载。另外Jenkins相关的资料非常少,想要快速解决自己遇到的问题的话可以去freenode的#jenkins这个频道,里面有挺多jenkins方面的专家,遇到一些不懂的问题或者是你不知道是否能实现的问题他们都能给你提供很好的建议。