【问题标题】:Jenkins Predefined environment variablesJenkins 预定义的环境变量
【发布时间】:2019-02-22 11:12:57
【问题描述】:

有趣的是,在我们的许多 Jenkins 工作中,我们必须使用 Jenkins 预定义的构建环境变量,例如 $WORKSPACE$BUILD_NUMBER 等。

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

【问题讨论】:

    标签: unix jenkins jenkins-pipeline


    【解决方案1】:

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

    Jenkins 还通过环境变量向您的构建脚本公开这些信息,这些环境变量在您首次启动时由 Jenkins 注入到您的脚本中。然后,您的脚本可以获取这些环境变量,以对它们执行任何必要的操作。

    在您提供的示例中 ($WORKSPACE) Jenkins 需要知道您的构建从站上此位置的绝对路径,因为如果不知道,它将无法检查您的源并构建它。由于它知道这些信息,因此它也会向您公开这些信息,以便更轻松地编写脚本。

    Jenkins 提供的通用环境变量的完整列表可用here

    【讨论】:

    • 同意,我想了解的是jenkins怎么知道对于$WORKSPACE,它应该去从机映射一个对应的目录。
    • 当你配置你的工作时,你指定它允许在哪些代理上构建(如果你不指定,它就是全部)。 Jenkins 将从符合条件的代理列表中随机选择一个。每个代理都有一个提前配置的工作目录(请参阅代理配置中的“远程工作目录”)。 Jenkins 将在您的代理上安排工作,代理将接手工作,检查工作目录中的工作区,然后构建您的软件。
    猜你喜欢
    • 2011-11-30
    • 2016-10-27
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多