如何在Jenkins任务中创建多个构建触发器并为每个配置不同步骤
在单个Jenkins任务中实现多触发器对应不同执行步骤
自由风格项目实现方案
配置构建触发器
- 给任务添加三类触发器:
- 通用构建(Common build):根据需求选择,比如「触发远程构建」(设置专属token)、GitHub/GitLab分支推送webhook等。
- 定时构建(Timing build):在「构建触发器」中勾选「定期构建」,填入cron表达式(例如
H 2 * * *表示每天凌晨2点执行)。 - 指定规则构建(Specified rule construction):可以用参数化构建(添加布尔参数
RUN_SPECIFIED_STEPS,手动触发时勾选),或者设置为「当标签被推送时」触发,或者指定特定分支推送触发。
- 给任务添加三类触发器:
添加条件执行逻辑
先安装Conditional BuildStep插件(Jenkins插件市场搜索安装),然后在「构建步骤」中添加「Conditional steps (multiple)」,为每类触发器设置专属条件和步骤:- 通用构建:设置条件为「环境变量
BUILD_CAUSE等于REMOTETRIGGER」(远程触发的情况),然后在条件块内添加步骤1-3。 - 定时构建:设置条件为「环境变量
BUILD_CAUSE等于TIMERTRIGGER」,在条件块内添加步骤4-7。 - 指定规则构建:如果是参数触发,设置条件为「参数
RUN_SPECIFIED_STEPS等于true」;如果是标签/特定分支触发,设置条件为「环境变量BRANCH_NAME等于指定值」,然后添加步骤8-11。
- 通用构建:设置条件为「环境变量
流水线项目(Jenkinsfile)实现方案
用Jenkins流水线的when指令判断构建触发原因,精准执行对应步骤,示例代码如下:
pipeline { agent any triggers { // 通用构建:远程触发(设置token) remoteTrigger(remoteToken: 'common-build-token') // 定时构建:每天凌晨2点执行 cron('H 2 * * *') // 指定规则构建:GitHub标签推送触发(可替换为GitLab触发器) githubPush() } parameters { // 手动触发时可选的指定规则参数 booleanParam(name: 'RUN_SPECIFIED_STEPS', defaultValue: false, description: '执行指定规则步骤') } stages { stage('通用构建步骤') { when { // 判断是否为远程触发 expression { currentBuild.getBuildCauses().any { it.shortDescription.contains('Remote trigger') } } } steps { echo '执行步骤1' echo '执行步骤2' echo '执行步骤3' } } stage('定时构建步骤') { when { // 判断是否为定时触发 expression { currentBuild.getBuildCauses().any { it.shortDescription.contains('TimerTrigger') } } } steps { echo '执行步骤4' echo '执行步骤5' echo '执行步骤6' echo '执行步骤7' } } stage('指定规则构建步骤') { when { // 满足任一条件即执行:手动勾选参数 或 标签推送触发 anyOf { expression { params.RUN_SPECIFIED_STEPS } expression { currentBuild.getBuildCauses().any { it.shortDescription.contains('Tag push') } } } } steps { echo '执行步骤8' echo '执行步骤9' echo '执行步骤10' echo '执行步骤11' } } } }
注意事项
- 可以在Jenkins任务的「环境变量」页面查看
BUILD_CAUSE的具体取值,不同触发器对应不同值(比如手动触发是MANUALTRIGGER),用于精准判断。 - 如果用代码仓库webhook触发,可通过
BRANCH_NAME环境变量区分分支,实现更细粒度的触发规则。 - 自由风格项目中,若需要复杂条件,可选择「Run condition」中的「Script」选项,用Groovy脚本编写判断逻辑。
内容的提问来源于stack exchange,提问作者laterday
相关产品推荐
相关产品推荐

