【问题标题】:Get Active Choices Parameter value from upstream job从上游作业获取 Active Choices 参数值
【发布时间】:2023-03-29 15:33:02
【问题描述】:

有一个使用Active Choices PluginActive Choices Parameters参数化作业

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

UtilityPath 参数依赖于 UtilityVersion 来评估自身并形成选择列表。

我该怎么做

  1. upstream 作业中获取 UtilityVersion 的 groovy 脚本返回的选项列表?
  2. 将我对 UtilityVersion 的选择提供给参数 UtilityPath,这样它就可以为我生成自己的选择列表(同样,在 上游 工作)。
  3. 使用我选择的参数 UtilityVersionUtilityPath 触发作业?

【问题讨论】:

  • 我说的对吗,上面的截图是上游作业的参数,下面是下游作业的参数?
  • @CSchulz 不,这些是同一个 downstream 作业的 2 个参数。 upstream 作业根本没有参数。
  • 但是您想在上游作业中显示来自下游作业的选择?
  • @CSchulz 我需要 upstream 作业来从 downstream 作业中获取选项列表。 upstream 作业决定 UtilityVersionUtilityPath 的值(将由 downstream 使用b>build) 基于 downstream 作业返回的选项列表。
  • 并且不能将其从下游作业移动到上游作业并将值传递给下游作业?

标签: jenkins groovy jenkins-plugins


【解决方案1】:

无论您的下游作业的参数有什么(在 groovy 脚本/代码部分中),如果您可以将其放入 SCRIPTLER 脚本中(请参阅 Jenkins Scriptler 插件),那么您可以调用 scriptler script 并传递相同的参数(如您所提到的,您在上游作业的 BUILD 部分(执行 shell 或运行 Groovy 脚本)中传递了下游作业),您不想添加由于复杂性,上游作业中的下游参数相同)。注意:如果您不想调用 Scriptler 脚本,如果您正在处理 TFS、ProjectC 和 someAutomationD 或者当 parameterX 设置为 true(您在那里调用)时,请参阅有关如何调用 Scriptler 脚本的条件运行插件(在 Build 部分) .

这与 CSchulz 提到的几乎相同,但 Scriptler 脚本更好,因为您在一个地方更改代码/脚本(Scriptler 脚本部分 - Jenkins 主页上的左侧部分),然后在任何地方使用/重用该脚本(即在支持 Groovy Scriptler 脚本的参数中 -- 或 -- 在构建部分中)而不需要读取下游作业的参数值(在调用下游之前的一些 hacky 方式,有时时间会改变一切) -- 或者用 Jenkins 做一些疯狂的事情API 使其更复杂。

【讨论】:

    【解决方案2】:

    正如我所尝试的,您无法使用“Active Choice Plugin”触发上游/下游作业。只有当您手动触发作业时,才会触发主动选择和反应参数。例如,如果您尝试从 bitbucket 触发构建,则主动选择参数会获取值,但反应值将显示为空。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多