【问题标题】:How to trigger a Jenkins job from a status change in Jira如何从 Jira 中的状态更改触发 Jenkins 作业
【发布时间】:2015-07-16 20:09:56
【问题描述】:

我一直在寻找一种方法来从状态或 Jira 更改状态中的票证/故事中触发 Jenkins 作业。举一个更详细的例子,当我的团队将工单移动到“准备测试”列时,我们希望能够在 Jenkins 中触发健全性测试包,理想的情况是我们能够发布结果(生成为 html)作为对 Jira 中的工单的评论。失败了,我们希望能够以简单的通过/失败的形式发布结果。

我最近一直在查看 Jenkins Jira 插件,但这似乎没有双向工作的功能,换句话说,它可以在作业运行后发布结果,但您不能从状态更改触发作业在吉拉。有没有这样的插件可用,还是我们需要自己创建?

提前干杯

【问题讨论】:

    标签: jenkins jira jenkins-plugins jira-plugin jenkins-jira-trigger


    【解决方案1】:

    请按照以下说明进行操作:

    GIT:

    您可以在提交时为 git/ bitbucket /stash 设置网络挂钩,这反过来应该会更改 JIRA 中的任务状态。

    JIRA:

    一旦你进入 JIRA。为您的任务定义工作流程。 在这个特定的工作流程中,您可以设置一个后期功能,应该配置网络挂钩。在此 webhook 配置中,事件定义 JQL 如下:

    status CHANGED FROM "To Do" TO "ready to test".
    

    同时提到需要在 URL 部分中触发的作业。

    【讨论】:

      【解决方案2】:

      它涉及多个步骤 如果您使用的是 Git/Stash/BitBucket(我已实现), 你可以简单地

      1. 在您的 Stash/Bitbucket 中配置提交挂钩
      2. 将事件附加到您的 JIRA 工作流
      3. Jenkins JOB - 发布构建事件 - 配置通知
      4. Stash 插件设置 Poll SCM

      就是这样

      【讨论】:

        【解决方案3】:

        我写了一个支持 JIRA 状态变化触发器的 Jenkins 插件:jira-trigger-plugin

        这个插件还注入了一个环境变量JIRA_ISSUE_KEY,所以你可以利用这个信息将你的结果发布回JIRA,例如使用 REST API。

        【讨论】:

        • 看起来 jira 只允许 80 和 443 端口 :( "WebHooks 只能使用标准 http 和 https 端口(80 或 443)。"
        【解决方案4】:

        所以,jira 中基本上有 webhook (https://developer.atlassian.com/jiradev/jira-architecture/webhooks)。有了它,您可以将其配置为在问题状态更改时触发特定的 url。具体的 url 应该是 jenkins API,例如,为了触发构建,您应该调用外部 url,例如(如果您使用参数构建):http://server/job/myjob/buildWithParameters?token=TOKEN&PARAMETER=Value

        更多信息https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-06-27
          • 2022-06-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-07-21
          相关资源
          最近更新 更多