首页 > 解决方案 > 将运行参数传递给下游作业

问题描述

假设我有一个运行参数如下的管道:

下游工作:

pipeline {
  parameters {
    run(name: 'NAME', filter: 'STABLE', projectName: 'myProject)
  }
}

现在,我怎样才能从另一个工作中使用这个工作并传递一个运行参数?

主要工作:

pipeline {
  parameters {
    run(name: 'NAME', filter: 'STABLE', projectName: 'myProject)
  }
  stages {
    stage('stage 1') {
      steps {
         build(job: "downstreamJob",
           parameters: [
             run(name: 'NAME', value: NAME)])
      }
    }
  }
}

错误:

WARNING: Unknown parameter(s) found for class type 'hudson.model.RunParameterValue': value

Could not instantiate {job=downstreamJob, parameters=[@run(name=NAME,value=http://.....)]} for org.jenkinsci.plugins.workflow.support.steps.build.BuildTriggerStep: java.lang.IllegalArgumentException: Could not instantiate {name=NAME, value=http://.....} for hudson.model.RunParameterValue: java.lang.reflect.InvocationTargetException

标签: jenkinsjenkins-pluginsjenkins-groovy

解决方案


解决方案是调用下游作业:

run(name: 'NAME', runId: NAME_JOBNAME + NAME_NUMBER)

它们是环境变量,runID 的格式为:myProject#0


推荐阅读