条件触发Jenkins多分支管道

条件触发Jenkins多分支管道,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我有一个参数化的Jenkins多分支管道,使用GitHub repo作为Jenkins文件和一些脚本的源。管道被配置为在Webhook上触发分支和拉请求,但我还希望只对主分支使用参数化的cron触发器,特别是在工作日每4小时一次 我使用声明性管道语法,但如果必要,我愿意使用脚本化管道 我正在使用来实现带有参数的cron触发器 此管道示例捕获了我试图实现但不受支持的目标: pipeline { triggers { when { branch "master" } parame

我有一个参数化的Jenkins多分支管道,使用GitHub repo作为Jenkins文件和一些脚本的源。管道被配置为在Webhook上触发分支和拉请求,但我还希望只对主分支使用参数化的cron触发器,特别是在工作日每4小时一次

我使用声明性管道语法,但如果必要,我愿意使用脚本化管道

我正在使用来实现带有参数的cron触发器

此管道示例捕获了我试图实现但不受支持的目标:

pipeline {
  triggers {
    when { branch "master" }
    parameterizedCron('H */4 * * 1-5 % ABC=XYZ')
  }
  stages {
  // do something
  }
}

这个特性有一个公开的Jenkins问题:但它似乎没有在开发中。

使用三元运算符对我的用例有效。仅为主分支计划生成:

pipeline {
  triggers {
    parameterizedCron(env.BRANCH_NAME == 'master' ? '''
# schedule every 4hours only on weekdays
H */4 * * 1-5 % ABC=XYZ''' : '')
  }
  parameters {
    string(name: 'ABC', defaultValue: 'DEF', description: 'test param')
  }
  stages {
    // do something
  }
}