Jenkins 具有不同构建参数的多个 cron 触发器

标签 jenkins triggers cron jenkins-pipeline parameterized

我在 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/

相关文章:

Jenkins-进程卡在插件安装的入门页面上

google-apps-script - Android 上的谷歌脚本激活(选择)一个单元格

linux - ./而不是/在 crontab 中

php - 如何从 Windows 访问 PHP 的 GUI 以便为 Magento 设置 cron 作业

c# - 如何执行真正耗时的方法? asp.net(定时)

maven - Jenkins Pipeline-无法连接到Docker守护程序

c# - 使用 vstest.console.exe 工具运行 Selenium 测试时显示测试的 URL

android - 如何根据口味更改gradle中的变量值

mysql - 插入后如何用Mysql触发器插入数据?

sql-server - 维护为拆分成多个表的实体的审核日志