jenkins - 如何在 jenkinsfile 中配置 "Scan Multibranch Pipeline Triggers"?

标签 jenkins jenkins-plugins jenkins-pipeline

现在我手动配置我所有的多分支管道作业并将“扫描多分支管道触发器”设置为 3 分钟。

我如何将它放入我的 Jenkinsfile ?我找不到这方面的例子。 triggers{} 中是否提供“扫描多分支管道触发器”块?

最佳答案

多分支配置页面上的设置仅配置多分支扫描作业本身,而不是在多分支“文件夹”内创建的单个作业。

“Scan Multibranch Pipeline Triggers”下的“Periodically if not running”选项只是多分支作业扫描新分支时的触发器。如果发现现有分支发生更改,或者发现新分支与 Jenkinsfile 匹配您的分支规范,则将触发新构建,但这不是触发作业的方式。

实际上,您可以通过将属性添加到 SCM 配置以“禁用自动 SCM 触发”来在发现更改时禁用自动构建。然后您将看到多分支扫描触发器,但即使发现更改,作业本身也不会构建。

要触发作业,理想情况下您应该尽可能使用 webhook。如果您通过 git 插件(而不是 github 插件)使用 git hook,那么您需要启用 PollSCM 触发器(尽管您可以将其设置为仅轮询很少或根本不轮询)。

如果你只想要普通的触发选项,从 2.22 开始,你可以配置 cronpollSCM触发器。

pipeline {
    triggers {
        cron('H/4 * * * 1-5')
        pollSCM('0 0 * * 0')
    }

然后我相信您可以配置 webhooks 来通知您的多分支作业何时进行扫描。我没试过。我只是告诉它使用“如果不以其他方式运行,则定期运行”每小时或每天扫描几次。

请注意,同样的事情适用于构建丢弃器和您在多分支作业中配置的其他内容。在 Web UI 中,您只能配置多分支作业本身,而不能配置从它创建的单个作业。您必须使用 Pipeline 来配置作业。

关于jenkins - 如何在 jenkinsfile 中配置 "Scan Multibranch Pipeline Triggers"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46323193/

相关文章:

jenkins - 你如何使用 Jenkins libraryResource 从资源中读取文件?

ubuntu - Jenkins 抛出错误 : jenkins. model.InvalidBuildsDir: ${ITEM_ROOTDIR}/builds 不存在并且可能无法创建

android - 无法通过 Jenkins 的 Android 模拟器插件创建模拟器

jenkins - 在 Jenkins 管道中使用 Groovy 创建一个包含一些内容的文件

基于环境变量的Jenkins流水线条件阶段

jenkins - 如何在 Jenkins 管道脚本(在 Windows 环境中)中获取文件(从工作区)的绝对路径

git - Jenkins git 插件 : How to configure different fetch and push git remotes?

Jenkins CopyArtifact 步骤 - 无法找到工件复制的项目

jenkins - 如何获取触发特定作业的项目详细信息?

jenkins - 如何在 Jenkins 管道中抛出异常?