如何实现一键触发多个Jenkins任务?
一键触发多个Jenkins任务的两种实现方法
方法一:创建Jenkins聚合任务
用Pipeline任务实现
新建一个Pipeline类型的任务,在Pipeline脚本里通过build步骤依次调用所有目标任务。示例脚本:
pipeline { agent any stages { stage('批量触发任务') { steps { build '任务A' build '任务B' build '任务C' // 按需添加剩余需要触发的任务名称 } } } }
如果目标任务需要传入构建参数,可在build步骤中指定参数,比如:
build job: '带参数的任务', parameters: [string(name: 'ENV', value: 'prod')]
用Freestyle任务实现
新建Freestyle任务,在「构建」环节添加「构建其他项目」步骤,依次填入所有需要触发的任务名称。还可以根据需求选择「只有当构建稳定时才触发」或「不管构建结果如何都触发」,以及是否等待当前任务完成再触发下一个。
方法二:编写Shell脚本调用Jenkins API触发
先在Jenkins个人中心→设置→API令牌页面生成专属API令牌,然后编写如下脚本:
#!/bin/bash # 替换成你的Jenkins实际配置 JENKINS_URL="http://your-jenkins-address" USERNAME="your-username" API_TOKEN="your-api-token" # 列出所有需要触发的任务名称 TARGET_JOBS=("任务A" "任务B" "任务C" "任务D") for JOB in "${TARGET_JOBS[@]}" do echo "开始触发任务: $JOB" curl -X POST "$JENKINS_URL/job/$JOB/build" \ --user "$USERNAME:$API_TOKEN" \ -H "Content-Type: application/x-www-form-urlencoded" done
如果目标任务需要构建参数,将请求地址改为buildWithParameters并传入参数,示例:
curl -X POST "$JENKINS_URL/job/$JOB/buildWithParameters" \ --user "$USERNAME:$API_TOKEN" \ -d "VERSION=v1.0.0&ENV=test"
内容的提问来源于stack exchange,提问作者StackWork 2022
相关产品推荐
相关产品推荐

