【问题标题】:How to read parameters sent by an upstream job in a downstream job?如何在下游作业中读取上游作业发送的参数?
【发布时间】:2018-12-28 06:28:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: jenkins groovy jenkins-pipeline


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我认为问题在于下游作业,因为它是非参数化的。如果下游作业是非参数化的,它只会忽略您的参数。 来自this页面:

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

      同样来自Parameterized Trigger Plugin的描述:

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

      【讨论】:

      • 我能够使用params.variableName在下游作业中接受参数
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 2019-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多