1

我在 jenkins 构建流程上配置了 3 个作业,所需的活动是获取由 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)

如上所述,每个先前的作业都会生成动态变量(作为构建后操作的一部分 - 我在一个实例中使用描述设置器插件来生成一个动态变量,而我希望在 b3 中使用 b1 的BUILD_URL )

为了做到这一点,我遇到了这个链接中的一篇文章并使用了 EnvInject Plugin。使用它我执行了以下操作 -

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

但我面临的问题是那些新注入的变量不可用于 b2 访问,b3 也是如此。

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

4

1 回答 1

1

正如上面链接中@Dave Bacher 所指定的,我得到了上述问题的解决方案,

  1. 我使用Post Build Task插件中的批处理脚本将参数转储到文件中。
  2. 该文件使用EvnInj 插件注入回环境。
  3. 这使我可以在构建流程的其他作业中访问这些参数

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

这完美地允许通过环境访问动态变量

于 2016-07-05T09:41:14.333 回答