【问题标题】:How can I make Jenkins only build feature branches if they have changed when triggering from bitbucket如果从 bitbucket 触发时发生更改,如何让 Jenkins 仅构建功能分支
【发布时间】:2013-09-30 22:30:08
【问题描述】:

我有一个 Jenkins 工作,它构建与“origin/feature/**”匹配的分支。

只要通过存储库挂钩 (https://confluence.atlassian.com/display/BITBUCKET/Jenkins+hook+management) 对存储库进行更改,Bitbucket 就会触发构建作业。

每当功能分支发生更改时,这都能正常工作,作业会识别分支已更改并构建它。

但是,当提交到非功能分支(例如,合并到开发或主控)时,bitbucket 仍会触发该作业。任何功能分支都没有更改,因此它只是再次构建最后构建的功能分支。

有办法控制吗?

【问题讨论】:

  • 需要更多上下文。 Bitbucket 是否在调用您工作的 jenkins API 来开始构建?参数化触发器? SCM 轮询?
  • Bitbucket 正在使用存储库挂钩调用 jenkins。我已经用详细信息更新了问题。

标签: git jenkins continuous-integration branch bitbucket


【解决方案1】:

答案在您链接到的 cmets 部分。 Bitbucket 将始终调用您的工作。

您需要在 Jenkins 面前有一个代理来隔离帖子。

https://github.com/oveddan/gitBuildForwarder

如果这是 SVN,我会告诉你如何更改 SVN 挂钩,以便仅根据正则表达式过滤选择性地触发挂钩。

【讨论】:

    【解决方案2】:

    经过一番研究,我终于找到了一个好的解决方案:

    • 在您的 Jenkins 上安装 Bitbucket Plugin
    • 将普通的 Post 作为 Hook 添加到您的 Bitbucket 存储库(Settings -> Hooks)并使用以下 url:

    https://YOUR.JENKINS.SERVER:PORT/bitbucket-hook/

    • 如下配置您的 Jenkins 项目:
      • 构建触发器 下启用 在将更改推送到 BitBucket 时构建
      • 源代码管理下选择GIT;输入您的凭据并定义要构建的分支(如 **feature/*

    这样我就有了三个构建项目,一个用于所有功能,一个用于开发,一个用于发布分支。

    【讨论】:

    • 只是对 URL 的评论: URL 应该是这样的: URL: JENKINS_URL/bitbucket-hook/ 最后有“/”!stackoverflow.com/questions/16507895/…
    • "bitbucket_hook" 代表作业名称?
    • 其实不是,它是 URL 的字符串部分。您可能想查看 Jenkins Pipeline 以查看是否符合您的情况。 (这些天以来发生了很多事情;))
    • 你是对的,但我想在詹金斯管道工作中做。
    【解决方案3】:

    由于我无法回答顶部的评论(为什么)

    “你是对的,但我想在詹金斯管道工作中做”

    为了让管道作业在推送后自动构建(每个钩子),我创建了另一个作业,该作业被配置为仅由 bitbucket/git 触发,并且有一个后续作业指向管道作业构建后操作。这是我能做到这一点的唯一方法

    【讨论】:

      【解决方案4】:

      您可以通过 Generic Webhook Trigger Plugin 做到这一点。

      • 将来自 JSON 有效负载的分支名称解析为类似 reference 的变量。
      • 可选过滤器文本可以设置为$reference,过滤器正则表达式设置为^(refs/heads/feature/.+)$

      【讨论】:

        猜你喜欢
        • 2015-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多