我有 Job_1 和 Job_2。
在 Job_1 中,
第1步:执行系统Groovy脚本
import hudson.model.*
def build = Thread.currentThread().executable
def param = []
param.add(new StringParameterValue('ARTS', "safsaf"))
def pa = new ParametersAction (param)
build.addAction(pa)
第 2 步:在其他项目上触发/调用构建
Projects to build: JOB_2
Add parameters: Current build parameters
第三步:
Execute Windows batch command
echo arts = %ARTS%
在Job_2中,
第1步:
Execute Windows batch command
echo arts from Job_1 = %ARTS%
构建 Job_1,它确实打印出:
艺术 = safsaf
build_2触发成功,并打印出:
来自 Job_1 的艺术=(空白)
看来只有在“此构建已参数化”部分中定义的 Job_1 中的参数才能传递到下游项目。
这是预期的行为吗? Fly中添加的参数如何传递?
在作业_1中,
在This build isparameterized
部分定义一个 string 参数“ARTS”,
并将 Groovy 脚本从更改为
import hudson.model.*
def build = Thread.currentThread().executable
def param = []
param.add(new StringParameterValue('ARTS', "safsaf"))
def pa = new ParametersAction (param)
build.addAction(pa)
到
import hudson.model.*
def build = Thread.currentThread().executable
build.replaceAction(
new ParametersAction(
new StringParameterValue('ARTS', 'safsaf')))
覆盖“ARTS”
的值,而不是添加新参数。
。我的下游工作是由插件中的构建后步骤 Trigger parameterized build on other projects
和
Current build parameter
启动的,而不是常规的下游工作。 Job_2 中 This build is parameterized
中定义的任何内容都会获取从 Job_1 传递的参数。我可能没有完全正确地使用这个,我认为可以捕获的内容与不能捕获的内容存在限制,但到目前为止,这为我捕获了 Job_1 中的所有所需参数。