Jenkins版本2.121.2
我建立了多分支管道。我正在使用声明性的Jenkinsfile。
我有一组测试,这些测试需要很长时间才能运行。我希望这些通宵查询所有有变化的分支。
我尝试了一些尝试,但目前失败的尝试是:
在任务下>配置,我启用了“抑制自动SCM触发”
将“扫描多分支管道触发器”>“如果没有运行则定期运行”设置为1分钟(仅出于测试目的,我会在工作时增加此值)
在我的Jenkinsfile文件中(凌晨4点运行的示例),我还尝试了pollSCM()
:
triggers {
cron('0 4 * * *')
}
在“扫描多分支管道日志”中,我看到以下内容,但没有工作在凌晨4点运行(时间在我的Jenkinsfile中的trigger()
中):
Changes detected: my-feature-branch (1234567890abcdefgh → abcdefgh123456789)
Did not schedule build for branch: my-feature-branch
我在做什么错了?
编辑:
因此,我尝试了此设置:
将cron设置为每15分钟一次
triggers {
cron('5,20,35,50 * * * *')
}
删除了“禁止自动SCM触发”用户界面中“配置”下的设置
但是它只是在发生分钟轮询(此测试中每小时的16分钟)后才开始运行。
我什么都不做似乎在注意我的cron设置?
如果我进入UI的分支作业下的“查看配置”,它将显示我的Jenkinsfile确定中的UI设置。
再次编辑!:
因此,在上一次编辑时,它实际上立即运行,然后在cron时再次运行。
现在,在用户界面中再次启用了“禁止自动SCM触发”设置。
我有工作了!我意识到的主要问题(a)更改未应用我不认为Jenkinsfile中的更改在第一次运行后才运行? (b)我还安装了下一个执行插件,以便可以更好地了解它的计划。
答案 0 :(得分:0)
这里的问题是在multibranchPipelineJob中声明的触发器用于扫描多分支。要运行作业,定期在管道中声明触发器,如下所示:
pipeline {
triggers {
cron('45 6 * * 1-5')
}
agent {
...