gpt4 book ai didi

jenkins - 使用声明式 Jenkinsfile 在多分支管道上运行夜间作业

转载 作者:行者123 更新时间:2023-12-02 18:32:18 25 4
gpt4 key购买 nike

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 * * * *')
}

删除了 UI 中配置下的设置“抑制自动 SCM 触发”

但它只是在轮询发生的那一刻开始运行(在本测试中是整点过 16 分钟)。

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

如果我在 UI 中的分支作业下进入“查看配置”,它会显示我的 Jenkinsfile 中的 UI 设置。

<小时/>

编辑(再次!):

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

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

我已经成功了!我意识到的主要问题(a)更改未应用,我认为直到第一次运行后才应用 Jenkinsfile 中的更改? (b) 我还安装了下一个执行插件,这样我就可以更好地看到它正在计划什么。

最佳答案

这里的问题是在 multibranchPipelineJob 中声明的触发器用于扫描多分支。要定期运行作业,请在管道中声明触发器,如下所示:

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

关于jenkins - 使用声明式 Jenkinsfile 在多分支管道上运行夜间作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51769750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com