你到底是如何在 Jenkins 中使用变量的?

How exactly do you use variables in Jenkins?

谁能简明扼要地解释一下下面三个变量的区别是什么?因为老实说,当我创建 Jenkins 作业时,我会在三种类型之间随机猜测,直到某些东西起作用,但我更愿意理解而不是盲目选择。

${ENV,var="BUILD_USER"}
${BUILD_USER}
$BUILD_USER

此外,除了上述 3 种方式之外,还有其他我错过的在 Jenkins 中编写变量的方式吗?

在语句中使用时: ${ENV,var="BUILD_USER"}--评估系统环境变量和returns变量的值BUILD_USER.

示例:curl ${ENV,var="BUILD_USER"}/api/xml

${BUILD_USER} --returns当前脚本内存BUILD_USER变量的值space.

示例:curl ${BUILD_USER}/api/xml

$BUILD_USER--用于给BUILD_USER变量赋值。

示例:$BUILD_USER = "BUILD_USER"

一般来说,变量扩展取决于解释配置值的插件。

例如,如果您设置作业参数 GIT_REPOSITORY 并使用它来配置 git 克隆应该去的地址,方法是将 $GIT_REPOSITORY 放入 git 存储库字段,它可以工作,但这只是因为 Jenkins git 插件已经实现了变量扩展支持。

许多插件确实实现了它,但除非您测试它,否则您无法知道它。然而,如今支持如此普遍,可以安全地假设它应该有效。

$VAR 和 ${VAR} 这两种引用形式都有效并且是等价的。如果您需要在变量被可以解释为变量一部分的其他字符包围的地方使用变量,则后一种形式很有用,例如 $VARX(Jenkins 将寻找名为 VARX 的变量)和 ${VAR}X (Jenkins 理解变量名为 VAR)。

这些规则模仿了 Unix shell 中的变量扩展规则。事实上,作业变量作为环境变量可用于构建步骤,在 Unix shell 构建步骤中,变量的使用方式与上述相同。

在 Windows CMD 构建步骤中,再次像任何 Windows 环境变量一样使用变量:%VAR%。