一,Jenkins工具简介
Jenkins是一种软件允许持续集成。Jenkins 安装在一台服务上也中央构建发生的地方。下面的流程图展示了Jenkins是如何工作的一个非常简单的工作流。
伴随着Jenkins,有时人们还可能看到它与Hudson关联。Hudson是由 Sun Microsystems 开发的一个非常流行的开源,基于Java 的持续集成工具,后来被Oracle收购。Sun被Oracle收购之后,一个从 Hudson 源代码的分支由 Jenkins 创建出台。
JDK | JDK 1.5 或以上 |
Memory | 2 GB RAM (推荐) |
Disk Space |
没有最起码的要求。需要注意的是,因为所有的构建将保存在 Jenkins 机器上,它必须确保有足够的磁盘空间可用于构建存储。
|
Operating System Version |
Jenkins可以安装在Windows, Ubuntu/Debian, Red Hat/Fedora/CentOS, Mac OS X, openSUSE, FReeBSD, OpenBSD, Gentoo 系统上
|
Java Container |
WAR文件可以在支持 Servlet2.4/JSP2.0或更高版本的容器中运行。(一个例子是Tomcat 5)。
|
三,利用Jenkins+Gitlab搭建持续集成(CI)环境
选择Jenkins作为持续集成工具,其优点是提供web GUI配置界面,方便配置,还可以安装很多第三方插件(plugin)进行定制与扩展,功能强大。
其次选择Gitlab作为git server。Gitlab的功能和Github差不多,但是是开源的,可以用来搭建私有git server,也提供非常强大的web GUI,比如开发者互相review源代码的时候就会很方便。
系统结构如下图所示:
系统的工作流程大概分为以下几步:
1, 开发者将新版本push到git server (Gitlab)。
2, Gitlab随后触发jenkins master结点进行一次build。(通过web hook或者定时检测)
3, jenkins master结点将这个build任务分配给若干个注册的slave结点中的一个,这个slave结点根据一个事先设置好的脚本进行build。这个脚本可以做的事情很多,比如编译,测试,生成测试报告等等。这些原本需要手动完成的任务都可以交给jenkins来做。
4, 我们在build中要进行编译,这里使用了分布式编译器distcc来加快编译速度。
tips:
jenkins的工作原理是先将源代码从gitlab中拷贝一份到本地,然后根据设置的脚本进行build。我们可以看出,整个系统的关键就是那个build脚本,用来告诉jenkins在一次集成中需要执行的任务。
参考资料:
Jenkins集成部署软件简介: http://yiibai.com/jenkins/
利用Jenkins+Gitlab搭建持续集成(CI)环境:http://www.w2bc.com/article/60615
用 GitLab + Jenkins 搭建 CI: http://www.tuicool.com/articles/MnamimA