Jenkins 从上游作业获取活动选项参数值

Jenkins 从上游作业获取活动选项参数值,jenkins,groovy,jenkins-plugins,Jenkins,Groovy,Jenkins Plugins,有一个作业使用活动选项参数参数参数化 我想从上游作业触发此作业。 上游作业应使用下游作业的默认参数 参数UtilityPath依赖于utilitypversion来评估自身并形成选项列表 我怎么能 从上游作业获取UtilityVersion的groovy脚本返回的选项列表 将我对UtilityVersion的选择提供给参数UtilityPath,这样它就可以为我生成自己的选择列表(同样,在上游作业中) 使用我对参数实用版本和实用路径的选择触发作业 无论下游作业的参数是什么(在groovy脚本/

有一个作业使用活动选项参数参数参数化

我想从上游作业触发此作业。
上游作业应使用下游作业的默认参数

参数UtilityPath依赖于utilitypversion来评估自身并形成选项列表

我怎么能

  • 从上游作业获取UtilityVersion的groovy脚本返回的选项列表
  • 将我对UtilityVersion的选择提供给参数UtilityPath,这样它就可以为我生成自己的选择列表(同样,在上游作业中)
  • 使用我对参数实用版本实用路径的选择触发作业

  • 无论下游作业的参数是什么(在groovy脚本/代码部分),如果可以将其放在脚本中(请参阅Jenkins Scriptler插件),那么可以调用
    Scriptler脚本
    ,并在上游作业的构建部分传递相同的参数(在下游作业中传递的参数)(执行shell或运行Groovy脚本)正如您所提到的,由于复杂性,不希望在上游作业中添加相同的下游参数)。注意:如果您不想在处理TFS vs ProjectC vs SomeAutomation时调用Scriptler脚本,或者当parameterX设置为true(您在此处的调用)时,请参阅关于如何调用Scriptler脚本的条件运行插件(在构建部分)


    这与CSchulz提到的非常相似,但是Scriptler脚本更好,因为您可以在一个地方(Scriptler脚本部分-Jenkins主页的左侧部分)更改代码/脚本,然后在任何地方使用/重用该脚本(即,在支持Groovy Scriptler脚本的参数中,或者在构建部分中)不需要读取下游作业的参数值(甚至在调用下游作业之前,时间有时会改变一切),或者对Jenkins API做一些疯狂的操作,使其更加复杂

    正如我所尝试的,您无法使用“活动选择插件”触发上游/下游作业。只有在手动触发作业时,主动选择和被动参数才会被触发。例如,如果您试图从bitbucket触发构建,则active choice参数将获取该值,但被动值将显示为空

    但是你可以用不同的方法来实现这一点。 如果手动(自己)触发第一个作业,请将downstram作业参数设置为字符串,以便直接读取这些值。 第二种选择是使用环境变量。主动选择比条件选择参数更重要。您可以编写groovy脚本将参数设置为环境变量。这可以通过EnvInject插件实现。在groovy中编写条件脚本,在每个构建步骤中都可以使用参数

    使用环境变量将参数传递给下游作业

    我说得对吗,上面的屏幕截图显示了上游作业的参数和下游作业的底部?@CSchulz否,这是同一下游作业的两个参数。上游作业根本没有参数。但是您想在上游作业中显示来自下游作业的选项吗?@CSchulz我需要上游作业来获取来自下游作业的选项列表。上游作业根据从下游作业返回的选项列表决定UtilityVersion和UtilityPath的值(将由下游构建使用)。并且不可能将其从下游作业移动到上游作业并将值传递到下游作业?