【发布时间】:2016-03-30 19:54:09
【问题描述】:
场景是:
Git -> JIRA -> 詹金斯
Git 中的提交必须更改 JIRA 中的问题状态,这反过来会触发 Jenkins 中作业的构建。
方法尝试:
- 我在 JIRA 中创建了一个 WebHook。此 Webhook 包含 Jenkins 作业的 URL。
- 将此 WebHook 附加到 JIRA 中的工作流中,作为 post 函数。
- 工作流程很简单。它说:[InReview]-->[InProgress]-(Aprrove)->[Done]
- webhook 附加到从 [InProgress] 到 [Done] 的过渡
- WebHook 中提到了IssueKey 和Issue-Updated。 IssueKey 将使该 WebHook 仅适用于特定问题。 Issue-Updated 是一个在特定问题更新时触发 WebHook 的事件。
现在,当我执行 Git 提交时,Jira 问题的状态会从 InReview 更改为 InProgress,并且会出现一个 Approve 按钮。当我签入 Jenkins 时,由于此问题更改而触发了构建。我将再次返回 JIRA,点击 Approve 按钮,将问题状态从 InProgress 更改为 Done,这也会触发 Jenkins 中的构建。
我的要求是 Jenkins 构建应该仅在 InProgress 到 Done 状态更改时发生。我无法指出 InReview 到 InProgress 转换触发 Jenkins 构建的原因。
对此的任何指示都会有很大帮助。提前致谢。
【问题讨论】:
-
你在 jenkins 中启用了 scm polling 吗?
-
你好@GuyBouallet,谢谢你的建议。我尝试过这个。但这并没有解决问题。我想我刚刚在 JQL 的帮助下解决了这个障碍。我会在下面提到解决方案。
-
你检查过 Jenkins 中的
Changelog matcher配置了吗?您可以将jira-trigger-plugin配置为仅当发送给Jenkins 的状态为Done时才会触发构建。查看插件自述文件/帮助以获取更多信息。