【问题标题】:Only trigger Jenkins Pipeline job on commit to master仅在提交到 master 时触发 Jenkins Pipeline 作业
【发布时间】:2018-06-29 13:28:53
【问题描述】:

我有一个由 github webhook 触发的 Jenkins Pipeline 作业,因此在提交到 Github 时会触发构建。但是,我只希望在向主分支提交时触发构建。目前任何提交都会触发构建,即使提交是在功能分支上进行的。

有什么方法可以在不借助多分支工作的情况下实现这一目标?

我在 Jenkins 配置、jenkinsfile 或 Github 存储库的 webhook 中看不到任何过滤分支(用于触发器)的方法。

我能找到的唯一特定于分支的信息是代码将从哪个分支构建,但提交到任何其他分支仍会“触发”构建。

谁能帮忙?

【问题讨论】:

  • 请参阅GitHub WebHooks triggered globally instead of per branch 的答案,了解您问题的 GitHub Webhook 方面。也许它会给你一些其他的想法。
  • 多分支作业类型有什么问题?
  • @StephenKing 我尝试创建一个多分支作业作为解决方案。但是在那种情况下,我很难让 webhook 完全触发构建。所以我最终得到了一个 Jenkins 文件,我可以在其中包含以我推送到的分支为条件的阶段(这是理想的),但是我必须手动触发构建。我将多分支配置设置为使用 webhook。并在我的仓库中创建 webhook。但是推送到任何分支都无法触发构建。 (我会警告这一切,因为我对这一切都很陌生,所以很可能在某个地方犯了一个新手错误!)
  • 我建议您尝试修复 webhook,而不是尝试解决此问题。
  • 所以我正在尝试多分支构建,但似乎仍然存在构建未触发的问题。在分支源中,我已经按照工具团队的建议设置了“GIT”的源。但是,从这个链接看来,这应该是 GitHub support.cloudbees.com/hc/en-us/articles/… 有谁知道我是否可以使用其中任何一个?还是必须是 github 才能在推送到 github 时自动触发?

标签: jenkins github jenkins-pipeline


【解决方案1】:

因此,我对此进行的研究越多,我就越意识到斯蒂芬是对的,我应该使用多分支管道方法。事实上,在较新的 Blue Ocean UI 中,默认情况下所有管道都是多分支的,进一步表明这是要走的路。

关于触发构建的第二个问题,这似乎与已设置的分支源有关。这最初是使用 git 分支源。一旦将其更改为 github 分支源并且在 jenkins 中正确配置了 github 服务器,那么触发器就会按预期工作。

【讨论】:

  • 你是怎么做到的?总体而言,似乎令人沮丧地缺乏有关管道的示例。
【解决方案2】:

您可以通过以下步骤更改哪个分支将“触发”构建的模式

位置:Jenkins --> 新项目 --> 管道 --> 构建触发器 --> 高级 --> 允许的分支 --> 按 *** 过滤分支

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    相关资源
    最近更新 更多