首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用声明式Jenkinsfile在多分支管道上运行夜间作业,而不使用“抑制自动SCM触发”功能

使用声明式Jenkinsfile在多分支管道上运行夜间作业,而不使用“抑制自动SCM触发”功能
EN

Stack Overflow用户
提问于 2019-08-15 18:51:52
回答 1查看 1K关注 0票数 0

詹金斯·维尔。2.150.3

我已经建立了一条多分支管道。我使用声明式Jenkinsfile。我有一套工作需要很长时间才能完成。我想把这些花翻个通宵找任何有变化的树枝。

在过去,可以使用“抑制自动SCM触发”选项和cron触发器来实现更改的分支的夜间构建。(见Run nightly jobs on multibranch pipeline with declarative Jenkinsfile

我不能再访问“抑制自动SCM触发”选项。

即使分支中的代码没有更改,下面的触发器也将运行。

代码语言:javascript
复制
triggers {
    cron('H 0 * * * *')
}

如果分支中有更改,则运行以下代码。然而,Jenkins多分支项目似乎是从push而不是pollSCM触发的。这似乎没有达到我想要的结果,即如果有变化,每个分支每晚运行一次。

代码语言:javascript
复制
triggers {
    pollSCM('H 0 * * * *')
}

只有在每个分支中存在更改时,如何配置Jenkins才能实现每个分支的夜间作业?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-22 10:38:29

添加从评论到这里的答复。

您可以通过使用以下脚本来实现这一点:

代码语言:javascript
复制
triggers {
  pollSCM ignorePostCommitHooks: true, scmpoll_spec: 'H H * * *'
}

使用指令生成器(可在<yourJenkinsUrl>/directive-generator/上获得),您可以生成实例中可用的脚本+参见一些文档,f.e.:

为了允许定期调度的任务在系统上产生均匀的负载,应该尽可能使用符号H(表示“散列”)。例如,将0***用于12项日常工作将在午夜造成很大的增长。相反,使用H***仍然可以每天执行每个作业一次,但并不是全部同时执行,更好地使用有限的资源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57514700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档