Unix Jenkins预定义的环境变量

Unix Jenkins预定义的环境变量,unix,jenkins,jenkins-pipeline,Unix,Jenkins,Jenkins Pipeline,有趣的是,我们必须在Jenkins的很多工作中使用Jenkins预定义的构建环境变量,如$WORKSPACE,$build\u NUMBER等 我觉得很难理解,Jenkins是如何设置规则的,当我们打印$WORKSPACE时,它会打印各种作业的当前工作区。它如何将变量$WORKSPACE映射到相应的Jenkins作业。Jenkins需要了解有关构建环境和作业的某些信息,才能正确地完成其工作。例如,它需要知道当前版本号、项目的签出位置、当前版本的启动者等。这些信息通常通过web界面向您公开 Jen

有趣的是,我们必须在Jenkins的很多工作中使用Jenkins预定义的构建环境变量,如
$WORKSPACE
$build\u NUMBER


我觉得很难理解,Jenkins是如何设置规则的,当我们打印
$WORKSPACE
时,它会打印各种作业的当前工作区。它如何将变量
$WORKSPACE
映射到相应的Jenkins作业。

Jenkins需要了解有关构建环境和作业的某些信息,才能正确地完成其工作。例如,它需要知道当前版本号、项目的签出位置、当前版本的启动者等。这些信息通常通过web界面向您公开

Jenkins还通过环境变量将此信息公开给构建脚本,当您的it第一次启动时,Jenkins会将这些环境变量注入到您的脚本中。然后,脚本可以提取这些环境变量,对它们执行任何必要的操作

在您给出的示例(
$WORKSPACE
)中,Jenkins需要知道构建从属服务器上此位置的绝对路径,因为如果它不知道,它将无法签出您的源代码并构建它。因为它知道这些信息,所以它也会向您公开这些信息,以使编写脚本更容易


Jenkins提供了一个完整的可用环境变量列表。

同意,我想了解的是Jenkins是如何知道$WORKSPACE应该转到从属机器并映射相应的目录的。配置作业时,您指定允许在哪些代理上构建作业的(如果不指定,则全部指定)。Jenkins将从合格代理列表中随机选择一个。每个代理都有一个提前配置的工作目录(请参阅代理配置中的“远程工作目录”).Jenkins将在您的代理上安排作业,代理将接收作业,在工作目录中签出工作区,并构建您的软件。