【问题标题】:Jenkins trigger parameterized cron with different parameter values for different branchesJenkins为不同的分支触发具有不同参数值的参数化cron
【发布时间】:2022-07-26 04:24:40
【问题描述】:

我的声明性管道中有以下代码:

String CRON_SETTINGS = BRANCH_NAME ==~ /(master|.*release.*)/ ? '''30 23 * * * % param1=value1''' : ""

pipeline {
    parameters {
        choice(name: 'param1', choices: ['value1', 'value2'], description: 'param')
    }
    triggers {
        parameterizedCron(CRON_SETTINGS)
    }
}

目前 Cron 的行为方式如下: 每天晚上 23:30,如果我的分支名称是 master 或者它包含字符串“release”,则构建作业,并且始终将 param1 的值设置为 value1。

我想要实现的是: 如果 barnch 名称是 master,运行 cron 并将 value1 设置为 param1 参数, 但是,如果分支名称包含“release”,则运行 cron,并将 value2 设置为 param1 参数。

非常感谢您为实现这一目标提供的帮助, 谢谢。

【问题讨论】:

    标签: jenkins cron jenkins-pipeline jenkins-plugins


    【解决方案1】:

    迟到的答案,我还没有测试过,但是使用switch statement 怎么样?

    switch (BRANCH_NAME) {
        case 'master':
            cronSettings = '30 23 * * * % param1=value1'
            break
        case '.*release.*':
            cronSettings = '30 23 * * * % param1=value2'
            break
        default:
            cronSettings = ""
            break
    }
    
    
    pipeline {
        parameters {
            choice(name: 'param1', choices: ['value1', 'value2'], description: 'param')
        }
        triggers {
            parameterizedCron(cronSettings)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多