jenkins - 将运行参数传递给下游作业
问题描述
假设我有一个运行参数如下的管道:
下游工作:
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
解决方案
解决方案是调用下游作业:
run(name: 'NAME', runId: NAME_JOBNAME + NAME_NUMBER)
它们是环境变量,runID 的格式为:myProject#0
推荐阅读
- javascript - Firestore Timestamp 和 Google Cloud Functions 的问题(date.toDate() 不是函数)
- haskell - Haskell递归陷阱,是什么减慢了它的速度?
- javascript - 从对象数组中选择一个对象
- python - 使用 np.genfromtxt 读取文件时如何进行多次转换?
- sql-server - 连接表 - 如何汇总问题(总和)?
- python - Django 酥脆的表单没有加载 css
- php - PHP MySQL电话号码的正确数据类型?
- go - Go text/template - 动态嵌套模板
- bash - 在设置工作目录之前,如何为 Slurm 作业创建新目录?
- django - django-allauth:让用户完成所有注册步骤但阻止登录