如何读取下游作业中上游作业发送的参数?

时间:2018-12-28 06:28:20

标签: jenkins groovy jenkins-pipeline

我有一个上游管道作业,可触发一个下游管道作业,该上游作业将一些参数发送给下游作业。我应该如何在下游作业中读取这些参数?这两个作业都是非参数化的。

上游作业会像这样发送参数。

build job: 'downstream-job', 
        parameters: [[$class: 'StringParameterValue', name: 'Environment', value: "dev"]]

This回答说直接使用变量,但这似乎不起作用。当我尝试在下游作业中使用变量Environment时,出现错误提示。

groovy.lang.MissingPropertyException: No such property: Environment for class: groovy.lang.Binding

2 个答案:

答案 0 :(得分:0)

根据文档here,它必须为params.Environment

答案 1 :(得分:0)

我认为问题在于下游作业,因为它是非参数化的。而且,如果下游作业没有参数化,它只会忽略您的参数。 在this页上:

  

参数化触发器插件参数(例如,使用属性时   文件作为源)只有在下游定义时才通过   工作。这是SECURITY-170的预期行为,请参阅Jenkins   安全公告2016-05-11

也来自Parameterized Trigger Plugin的描述:

  

*您必须通过“此项目已参数化”在下游作业中定义参数。例如,如果job1将ABC = 123传递给job2,则在job2中将作业标记为“此项目已参数化”,并将“添加参数”标记为“ ABC”。 *