我在 Jenkins 脚本中使用参数化 cron 来运行 2 组不同的构建参数 - 一组在生产中每 5 分钟运行一次,在暂存中每 15 分钟运行一次。生产版本每 5 分钟运行一次,但暂存版本不运行。有人可以告诉我我可能缺少什么吗?
properties([
pipelineTriggers([parameterizedCron(env.BRANCH_NAME != 'master' ? '''
H/5 * * * * % environment=production
H/15 * * * * % environment=staging''' : '')]),
parameters([
choice(name: 'environment', defaultValue: 'sandbox', choices: ['sandbox', 'staging', 'production'], description: "etc")
])
])
A 做了如下轻微修改,令人惊讶的是,这次只有 staging 正在运行
properties([
pipelineTriggers([parameterizedCron('''H/2 * * * * % environment=production'''), parameterizedCron('''H/4 * * * * % environment=staging''')]),
parameters([
choice(name: 'environment', defaultValue: 'sandbox', choices: ['sandbox', 'staging', 'production'], description: "etc")
])
])
我找不到其中任何一个只工作一半的原因。
有人可以告诉我可以更改哪些内容来解决该问题吗?
最佳答案
H/5
计划可能会覆盖 H/15
计划,因为它们之间存在冲突,因此不清楚应该使用哪些参数,例如在第15分钟。 (您可能希望使用不同的参数进行两次运行,但不清楚插件是否理解这一点。)
您可以尝试准确指定:
pipelineTriggers([parameterizedCron(env.BRANCH_NAME != 'master' ? '''
0,5,10,15,20,25,30,35,40,45,50,55 * * * * % environment=production
0,15,30,45 * * * * % environment=staging''' : '')]),
关于Jenkins 具有不同构建参数的多个 cron 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62843299/