You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Pipeline如何基于REST API返回配置动态触发带参构建任务

Jenkins动态触发目标Job实现方案

前置依赖

  • 提前安装必备Jenkins插件:HTTP Request、Pipeline Utility Steps
  • 执行当前Pipeline的服务账号拥有所有待触发目标Job的构建权限
  • 待调用的REST API允许Jenkins服务器网络访问,需鉴权的话提前在Jenkins中配置对应API的访问凭据

完整Pipeline示例

pipeline {
    agent any
    stages {
        stage('获取待执行任务信息') {
            steps {
                script {
                    // 调用REST接口获取任务数据,需替换为你的实际API地址
                    def response = httpRequest url: 'https://your-rest-api-address/task', failOnError: true
                    // 解析返回的JSON结构
                    def taskInfo = readJSON text: response.content
                    
                    // 处理参数:把接口返回的单键值对参数数组转成Jenkins build步骤接受的Map格式
                    def jobParams = [:]
                    taskInfo.parameters.each { paramItem ->
                        paramItem.each { key, value ->
                            jobParams[key] = value
                        }
                    }
                    
                    echo "即将触发任务:${taskInfo.jobName},参数:${jobParams}"
                    
                    // 触发目标Job构建
                    build job: taskInfo.jobName, 
                          parameters: jobParams,
                          // 可选配置:不需要等待目标Job执行完成就继续往下走的话改为false
                          wait: true,
                          // 可选配置:目标Job执行失败不中断当前Pipeline的话改为false
                          propagate: true
                }
            }
        }
    }
}

常见注意事项

  • 如果目标Job存放在Jenkins文件夹下,jobName需要填写完整路径,例如 业务测试组/前端项目/tzach_job1
  • 若待触发Job是无参数Job,接口返回空parameters数组也可以正常执行触发
  • 如果调用的REST API需要身份认证,可以在httpRequest步骤添加authentication: 'Jenkins中存储的API凭据ID'参数完成鉴权
  • 如果需要并行触发多个任务,可以把build步骤放入parallel块中执行

内容的提问来源于stack exchange,提问作者Tzach Solomon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 16:54:02