添加到动态构建的参数未传递到下游作业

问题描述 投票:0回答:2

我有 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中添加的参数如何传递?

jenkins groovy triggers parameter-passing
2个回答
1
投票

在作业_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”

的值,而不是添加新参数。


0
投票
参数化触发器插件

。我的下游工作是由插件中的构建后步骤 Trigger parameterized build on other projects

Current build parameter
启动的,而不是常规的下游工作。 Job_2 中
This build is parameterized
中定义的任何内容都会获取从 Job_1 传递的参数。
我可能没有完全正确地使用这个,我认为可以捕获的内容与不能捕获的内容存在限制,但到目前为止,这为我捕获了 Job_1 中的所有所需参数。

© www.soinside.com 2019 - 2024. All rights reserved.