【问题标题】:Set Jenkins Environment Variable from another Jenkins Environment Variable从另一个 Jenkins 环境变量设置 Jenkins 环境变量
【发布时间】:2014-02-08 03:01:36
【问题描述】:

我正在尝试设置作业环境变量。一些变量是从其他环境变量中设置的。例如在 Windows 上:

var1=this
var2=that
var3=other
var4=%var1%_%var2%_%var3%

我希望看到 var4 设置为“this_that_other”。我尝试将前三个设置为作业变量,第四个设置为构建变量。不开心。

【问题讨论】:

  • 可能必须使用一些技巧/解决方法,例如将其写入文件并读回。
  • 谢谢。这就是我所担心的。

标签: jenkins environment


【解决方案1】:

您可以使用 Jenkins 的 EnvInject Plugin 来执行此操作。这里 var1、var2 和 var3 是构建参数,或预定义的环境变量。同样的事情也可以使用 Groovy 完成。

【讨论】:

  • 我们正在使用 EnvInject 插件 (1.83),也许我对它的使用有点愚蠢,但这并没有帮助。
  • 我的问题陈述并不准确,但我有:$var1=this $var2=that $var3=$var1_$var2。它不会将 _ 视为文字,而是寻找 $var1_。它确实使用 \ 而不是 工作。出路是设置 $sep= 和 $var3=$var1$sep$var2。
【解决方案2】:

因为你只在当前进程范围内设置了变量。正如您所说,如果您不想使用文件来存储和检索,另一种选择是使环境变量设置机器明智,如果这符合您的需要并且不会产生任何副作用。

如果你可以安装 PowerShell 插件,使用 PowerShell 脚本很容易做到这一点:

[Environment]::SetEnvironmentVariable("VAR4", $WhatEverYouWant, "Machine")

这使得 VAR4 变量在机器级别立即可用,这意味着在所有其他进程中。

【讨论】:

  • 谢谢安迪,我不知道,但在这种情况下,可能有多个进程在该机器上运行,VAR4 的值不同。
【解决方案3】:

如果需要 var4,可以在批处理命令中设置 var4:

set var4=%var1%_%var2%_%var3%

var4 现在在批处理命令期间具有所需的值,但对于任何后续构建步骤都没有。这对我没有帮助,因为我需要在 ant 命令中使用 var4。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-15
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多