如何在 jenkins 构建流程中使用从一个作业生成的变量并将它们用于同一 jenkins 构建流程中的下一个作业

How to use generated variables from one job in jenkins build flow and utilize those into next job in the same jenkins build flow

我在 jenkins 构建流程上配置了 3 个作业,所需的 activity 是获取由 post-b1 到 b2 的构建任务和 b2 到 b3 的变量等产生的动态变量等等。

list = ["foo", "bar"]

b1 = build("ExecuteJob1", param1: list[idx])
b2 = build("ExecuteJob2", param1: <some dynamic variable from b1>)
b3 = build("ExecuteJob3", param1: <some dynamic variable from b2>, param2: some dynamic variable from b1)

如上所述,每个以前的作业都会生成动态变量(作为 post 构建操作的一部分 - 我在一个实例中使用 description setter 插件来生成一个动态变量和其他我想在 b3 中使用 b1 的 BUILD_URL)

为了实现这一点,我在 link and used EnvInject Plugin 中发现了一个 post。使用这个我执行了以下 -

  1. 我创建了一个作业 (envInj) 以便将这些动态变量注入到环境中
  2. 我将该 envInj 作业用作 b1 的 post-condition 作业,并在 b1 和 b2 之间设置了一些时间以确保 post-condition 作业在 b2 开始之前执行。
  3. 这实际上注入了环境所需的变量(如果在控制台日志以及 envInj 作业的环境变量中进行了检查)。

但我面临的问题是那些新注入的变量无法供 b2 访问,b3 也一样。

那么,是否有任何选项可以将那些 b1 变量获取到 b2(依此类推)或者是否有更好的方法来实现所需的?

我得到了上述问题的解决方案,正如@Dave Bacher 在上面 link、

中指定的那样
  1. 我使用 Post Build Task 插件中的批处理脚本将参数转储到一个文件中。
  2. 此文件是使用 EvnInj plugin 注入回环境的。
  3. 这允许我在构建流程的其他作业中访问这些参数

    b1 = build("ExecuteJob1", param1: list[idx])
    b2 = build("ExecuteJob2", param1: b1.dynamicVariableX)
    b3 = build("ExecuteJob3", param1: b1.dynamicVariableY, param2:nb2.dynamicVariableZ)
    

这非常有效,允许通过环境访问动态变量