背景:想通过监控jira中 issue状态的变化去触发jenkins job的构建
-
在jenkins中安装插件:JIRA Trigger plugin. 下载地址:https://plugins.jenkins.io/jira-trigger/
-
在Jenkins-> Manage Jenkins -> Configure System -> JIRA Trigget Configuration中配置该插件与jira端的关联
-
在Jira中配置webhook,管理->系统->高级->webhook
-
点击WebHooks,在页面上点击创建Webhooks的按钮
-
然后在页面上填写url(格式是:${Jenkins URL}/jira-trigger-webhook-receiver/)名称可以随便命名,并选中事件。
这里可以写JQL函数去限制该webkook对JIRA issue的起效范围,例如:project=DevOps团队 and issuetype=任务
不要勾选排除主体,然后点击“Save”按钮保存
上述的配置,在github官网的文档中也有详细描述:https://github.com/jenkinsci/jira-trigger-plugin
- 可以先创建一个pipeline job,接着在Jenkins job中配置JIRA Trigger Configuration
上图中,我们通过判断status(即issue的状态)的值的改变来决定是否触发构建,上面:一个是匹配old status 一个是匹配new status.
即jira issue的状态从In Progress—>Done则会触发构建.
之后查看该构建控制台日志,可以发现是jira issue的状态发生变化的log输出.
- jenkins job中的Parameter mapping->Issue Attribute Path配置是从jira REST API中抽取信息显示到jenkins端
在job console output所在页面点击Parameter 可以看到webhook触发jenkins job构建后传过来的jira信息
- 提示):可以在jenkins端配置多个job使用该插件,当jira issue状态发生变化时可以触发多个jenkins job进行构建
- 注意):当前1.0.3版本的JIRA Trigger plugin在写JQL函数对webhook作用范围进行限制时,只有在jira webhook中填写才能起作用。