Jira+Jenkins集成,实现任务状态改变自动触发增量发布

前几天把Jira、Confluence、Fisheye集成环境搭建好了,今天进一步把Jenkins和Jira做了一个集成,目的就是通过Jira通知Jenkins任务已经完成,可以发布了。然后Jenkins获取通知后自动抓取Jira任务单关联的代码清单,完成增量发布。在集成过程中确实有一些关键点有必要记录下来,分享给大家。

1、首先是Jira任务单和代码的关联

这一部分是通过Jira和Fisheye的集成实现的,这样在Jira的任务单里就可以看到源码的标签页,列出了这个Jira单关联的代码清单。那么这个任务单和代码清单是怎么关联的呢?这就要求我们在上传代码到SVN的时候,在备注里填写上Jira的单号,这样就通过Fisheye让任务单和代码清单建立的关联。

Jira+Jenkins集成,实现任务状态改变自动触发增量发布

2、Jira任务改变要通知到Jenkins

这个功能是通过Jira的网络钩子功能和Jenkins中的Jira插件实现的,具体配置如下:

①Jenkins中安装JIRA Trigger Plugin插件,然后配置Jira的地址和登录信息

②Jira中创建网络钩子,其中url是:http://你的Jenkins地址/jira-trigger-webhook-receiver/

③这样当Jira中任务发生变化后,就会通过网络钩子通知到Jenkins

 

3、Jenkins中配置触发构建的条件

安装好JIRA Trigger Plugin插件后,在触发构建选项中就能看到两个新的触发条件:

  • Build when a comment is added to JIRA
  • Build when an issue is updated in JIRA

通过在JIRA任务单中添加备注或者通过检测JIRA任务单的状态变化,来触发Jenkins构建,这里我以第一个为例子进行了配置:

这里的JIRA_ISSUE_KEY变量,可以在后面的构建shell中使用,通过该变量获取到Jira的key。

4、编写shell,根据Jira的Key或者Jira任务状态获取到代码清单列表

这一步我是通过Java代码调用Jira和Fisheye提供的API实现的,API文档如下:

然后在shell中获取到Java代码查询到代码清单,进行更新发布。大家可以自行参考这个文档,使用合适的rest API实现。

5、最后看一下效果

在Jira任务单中添加备注:请发布,很快就会收到Jenkins反馈的备注信息,提示已经安排发布

再看看Jenkins中的发布日志,可以看到确实获取到改该任务单的代码清单

 

本文作者:大席
首发网站:大席的博客
版权声明:本博客所有文章除特别声明外,均为原创作品,转载请附带本段文字并注明本文出处

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.