Jenkins 使用声明性文件在多分支管道上运行夜间作业

Jenkins 使用声明性文件在多分支管道上运行夜间作业,jenkins,jenkins-pipeline,jenkins-declarative-pipeline,Jenkins,Jenkins Pipeline,Jenkins Declarative Pipeline,詹金斯版本2.121.2 我已经建立了一个多分支管道。我使用的是一个声明性文件 我有一套测试需要很长时间才能运行。我希望这些运行在夜间的任何分支有变化 我尝试了一些方法,但我目前的失败尝试是: 在作业>配置下,我已启用“抑制SCM自动触发” 将“定期扫描多分支管道触发器”>“如果不运行,则定期扫描”设置为1分钟(仅用于测试,我会在它工作时增加此值) 在我的Jenkins文件中(例如凌晨4点运行),我还尝试了使用pollSCM(): 在“扫描多分支管道日志”中,我看到以下内容,但在凌晨4点(我

詹金斯版本2.121.2

我已经建立了一个多分支管道。我使用的是一个声明性文件

我有一套测试需要很长时间才能运行。我希望这些运行在夜间的任何分支有变化

我尝试了一些方法,但我目前的失败尝试是:

  • 在作业>配置下,我已启用“抑制SCM自动触发”

  • 将“定期扫描多分支管道触发器”>“如果不运行,则定期扫描”设置为1分钟(仅用于测试,我会在它工作时增加此值)

在我的Jenkins文件中(例如凌晨4点运行),我还尝试了使用
pollSCM()

在“扫描多分支管道日志”中,我看到以下内容,但在凌晨4点(我的文件中的
触发器()
中的时间)没有作业运行:

请问我做错了什么


编辑:

因此,我尝试了以下设置:

将cron设置为每15分钟一次

triggers {
  cron('5,20,35,50 * * * *')
}
删除了UI“抑制SCM自动触发”中“配置”下的设置

但它只是在轮询发生的那一分钟开始运行(在这个测试中是16分钟过去)

我什么都不做似乎在关注我的cron设置

如果我在UI中的分支作业下“查看配置”,它将显示我的Jenkins文件ok中的UI设置


编辑(再次!):

因此,在最后一次编辑中,它确实立即运行,然后在cron时间再次运行

现在在UI中再次启用设置“抑制SCM自动触发”


我让它工作了!我意识到的主要问题是(a)在第一次运行之后,在Jenkins文件中进行更改之前,不会应用更改吗?(b) 此外,我还安装了下一个执行插件,以便更好地了解它的计划。

这里的问题是multibranchPipelineJob中声明的触发器用于扫描multibranch。要在管道中定期运行作业,请执行以下操作:

pipeline {
    triggers {
        cron('45 6 * * 1-5')
    }
    agent {
    ...
triggers {
  cron('5,20,35,50 * * * *')
}
pipeline {
    triggers {
        cron('45 6 * * 1-5')
    }
    agent {
    ...