您的位置:首页 > 其它

CI持续集成系统 jira + jenkins + gerrit

2017-11-09 17:40 851 查看
接触到jenkins是从做诺基亚的heremaps API自动化开始的,一开始只是当个工具使用,没有深入了解,随后工作闲暇时就花了些时间看看了关于jenkins的一些实践。还是先简单说下jenkins

原名为Hudson,现在叫Jenkins,这个持续集成工具是Java开发设置的关键部分。Jenkins为软件项目提供了自动构建和测试。随着 JUnit的测试持续集成,Jenkins在Java的平台上是敏捷研发成为可能。虽然Hudson和Jenkins现在集成在一起,但并没有偏离 Kohsuke Kawaguchi的努力,Kohsuke使它成为世界级的持续集成平台,并提高了大部分Java研发的质量。

据说是因为oracle收购sun后hudson商标问题,才改名jenkins。

正如官网所写的
An extendable open
source continuous integration server

经过这么多年积累,jenkins的可扩展插件已经异常丰富,几乎可以和所有的常见系统配合工作,下面会介绍下我的实践经历。

老大宣称我们要做敏捷。于是

实践:jira + jenkins + gerrit

jira : 用来做需求管理和缺陷追踪,开发和测试人员在jira找到所有的东西(我们把gerrit、jenkins全都通过插件集成在jira上了,没有特殊需求,不需要单独访问jenkins和gerrit
server),jira也是异常的强大,各种插件支持,围绕jira基本可以把所有的环节都打通。

jenkins :执行构建、测试。jenkins通过监视gerrit code-review (我们是+2时触发构建)事件,自动执行任务(构建、测试、部署),并将结果反馈到jira和gerrit中

gerrit :用来做代码审核管理,最开始我们使用git来管理代码,每次大家review代码都异常痛苦,于是改用了gerrit,大家有review需求时只要提交到gerrit(和git的提交一样,就是提交到了一个临时的中间层,不会直接到核心库里)相关人员审核代码后可以执行+1
、0、-1、+2操作,通过插件jira可以将gerrit中的信息显示在jira,这里就不再赘述了。

生态系统如下图




下面来说说用到的插件:只说说几个server互相通信的插件
jira :
      Jenkins/Hudson
build status gadget

       build-gadgets-1.6.jar 
      Show
your Jenkins/Hudson build status on JIRA Dashboard
      https://marketplace.atlassian.com/plugins/org.jboss.jira.plugin.build-gadgets

      Jenkins
Plugin for JIRA
      jira-jenkins-plugin-1.3.3.obr

      Visualisation of Jenkins Builds in JIRA

      https://marketplace.atlassian.com/plugins/com.marvelution.jira.plugins.jenkins

      https://marvelution.atlassian.net/wiki/display/JJI/Release+Notes

      JIRA Gerrit Plugin


      gerrit-plugin-2.1.2.jar

      https://marketplace.atlassian.com/plugins/com.meetme.plugins.jira.gerrit-plugin

      这个插件貌似只支持jira5.2以下版本,代码在github上(公司屏蔽github回家了又不想搞这些、惭愧)

jenkins:

       
JIRA Plugin for Jenkins
This plugin implements the Application Link API to support integration with Atlassian
JIRA

Jenkins JiraTestResultReporter plugin
This plugin creates issues in Jira for failed unit tests.

Jenkins JIRA plugin
This plugin integrates Jenkins to Atlassian JIRA.

Jenkins Jira Issue Updater
This plugin can update Jira issues by changing their workflow status and adding comments.

Jenkins GIT plugin
This plugin integrates GIT with Jenkins.

Gerrit Trigger
This plugin integrates with Gerrit code review.

Jenkins MSBuild Plugin
This plugin makes it possible to build a Visual Studio project (.proj) and solution files (.sln).

Maven Project Plugin
Jenkins plugin for building Maven 2/3 jobs via a special project type.

Ant Plugin
This plugin adds Apache Ant support to Jenkins.

Python Plugin
Adds the ability to execute python scripts as build steps.

Hudson Ruby Plugin
This plugin will let users use Ruby in the build scripts.

...

剩下的就是配置工作了,这些插件基本都在github上可以找到源码,在各个插件的下载页面基本都可以找到说明,花些时间就差不多可以搞定。

还有就是Atlassina 自家的集成工具 bamboo ,同出一门自然可以和jira更好的集成,最重要的是收费就意味着会提供可靠的服务支持。将更多的精力花在coding上。就像bamboo拉拢你一样:

Open source tools like Jenkins are a great way to get started with continuous integration. But when your CI matures beyond the basics, you may spend more energy working around the tool's limitations than on actual work. Sounds familiar? Then you'll love
Bamboo.

After all: "free" is only free if your time is worth nothing.

Atlassian目前支持敏捷开发的一系列工具包括:供持续集成使用的Bamboo,供走查代码使用的Crucible,供代码覆盖率分析使用的Clover,而JIRA用来跟踪问题。
高富帅公司必备,穷屌公司就要···

一切就绪后,看起来会很美好,jenkins可以自动构建、自动化测试,然后将构建结果自动添加到jira中,并更新jira中软件版本信息,所有事情都可以通过jira来获取信息。



jenkins和bugzilla也可以很好的集成~bugzilla也免费~

转:http://blog.sina.com.cn/s/blog_88b00ea80101bqcm.html
参考:Jenkins 集成和使用JIRA Bug跟踪管理工具 http://blog.csdn.net/boonya/article/details/77885170
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: