有趣的是,我们在很多Jenkins工作中必须使用Jenkins预定义的构建环境变量,例如$WORKSPACE
,$BUILD_NUMBER
等。
我很难理解,詹金斯是如何设置规则的,使得当我们打印$WORKSPACE
时,它会打印各种作业的当前工作空间。如何将变量$WORKSPACE
映射到相应的Jenkins Job。
答案 0 :(得分:1)
Jenkins需要了解有关您的构建环境和作业的某些信息,以便正确执行其工作。例如,它需要知道当前的内部版本号,应检出项目的位置,谁开始了当前的内部构建等。这些内容通常是通过Web界面公开给您的。
Jenkins还会通过环境变量将这些信息公开给您的构建脚本,这些环境变量在Jenkins首次启动时会注入到您的脚本中。然后,您的脚本可以拾取这些环境变量,以对它们进行任何必要的操作。
在您给的示例($WORKSPACE
中,詹金斯需要知道构建从属服务器上此位置的绝对路径,因为如果没有,它将无法检出您的源并进行构建。由于知道这些信息,因此它也向您公开,从而使编写脚本更加容易。
Jenkins提供了here提供的一般可用环境变量的完整列表。