詹金斯版2.150.3
我建立了多分支管道。我正在使用声明性的Jenkinsfile。我有一些工作需要很长时间才能完成。我希望这些通宵查询所有有变化的分支。
过去,人们可以结合使用“抑制自动SCM触发”选项和cron触发来实现具有变化的分支的夜间构建。 (请参见Run nightly jobs on multibranch pipeline with declarative Jenkinsfile
我不再有权使用“禁止自动SCM触发”选项。
即使分支中的代码没有更改,以下触发器也将运行。
triggers {
cron('H 0 * * * *')
}
如果分支中有更改,则会运行以下代码。但是,Jenkins多分支项目似乎是由推动而不是pollSCM触发的。如果发生更改,这似乎无法达到我期望的每个分支每晚运行一次的结果。
triggers {
pollSCM('H 0 * * * *')
}
仅当该分支中存在更改时,我如何配置Jenkins才能实现每个分支的夜间作业?
答案 0 :(得分:0)
将评论中的答案添加到此处。
您可以通过使用以下脚本来实现:
triggers {
pollSCM ignorePostCommitHooks: true, scmpoll_spec: 'H H * * *'
}
使用指令生成器(可在<yourJenkinsUrl>/directive-generator/
获得,您可以生成实例中可用的脚本+参见一些文档,例如:
为了允许定期计划的任务在服务器上产生均匀的负载 在系统中,应尽可能使用符号H(“哈希”)。 例如,将0 0 * * *用于一打日常工作将导致大量 在午夜飙升。相反,使用H H * * *仍将执行 每个工作每天一次,但不能同时完成,最好使用 资源有限。