Jenkinsfile 中不同分支的单独触发器

ral*_*com 5 jenkins jenkins-pipeline

我正在使用多分支 Jenkins 构建,我希望开发分支每两周定期构建一次,并保留主分支手册。

我们的管道是管道即代码,因此我无法为所需的分支设置配置。

我想在星期天每两周建立一次我们的开发分支,到目前为止我发现了一些不同的东西。

现在我已经到了这个时间表:

triggers {
    cron('00 12 /2 7')
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使它特定于分支。我现在正在尝试这个,看看它是否有效,应该每 5 分钟或中断触发一次开发构建。

    triggers {
        when (env.BRANCH_NAME == 'develop') {
            cron('H/5 * * * *')
        }
    }
Run Code Online (Sandbox Code Playgroud)

触发器块中不允许使用 when 。

我在 Jenkins jira 上找到了一个“解决方案”,它是这样的:

String cron_string = BRANCH_NAME == "develop" ? "00 12 /2 7" : ""

pipeline {
    agent none
    triggers { cron(cron_string) }
    stages {
    // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

ral*_*com 5

我在 Jenkins jira 上找到了一个“解决方案”,它是这样的:

String cron_string = BRANCH_NAME == "develop" ? "00 12 /2 7" : ""

pipeline {
    agent none
    triggers { cron(cron_string) }
    stages {
    // do something
    }
}
Run Code Online (Sandbox Code Playgroud)