使用预定义变量

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

注意

在 Microsoft Team Foundation Server (TFS) 2018 和更低版本中,生成和发布管道被称为“定义”,运行被称为“生成”,服务连接被称为“服务终结点”,阶段被称为“环境”,而作业被称为“阶段” 。

变量提供了一种将关键位数据获取到管道的各个部分的便捷方法。 这是可供使用的预定义变量的列表。 可能有一些其他预定义变量,但它们主要用于内部使用。

这些变量由系统自动设置,只读。 (异常为 Build.Clean 和 System.Debug.)

在 YAML 管道中,可以将预定义变量引用为环境变量。 例如,变量 Build.ArtifactStagingDirectory 将成为变量 BUILD_ARTIFACTSTAGINGDIRECTORY

对于经典管道,可以使用部署任务中的 发布变量 来共享常见信息 (,例如环境名称、资源组等) 。

详细了解 如何使用变量

Build.Clean

这是一个已弃用的变量,用于修改生成代理清理源的方式。 若要了解如何清理源,请参阅 清理代理上的本地存储库

System.AccessToken

System.AccessToken 是一个特殊变量,它携带正在运行的生成使用的安全令牌。

在 YAML 中,必须使用变量显式映射到 System.AccessToken 管道。 可以在步骤或任务级别执行此操作:

steps:
  - bash: echo This script could use $SYSTEM_ACCESSTOKEN
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)
  - powershell: | 
      Write-Host "This is a script that could use $env:SYSTEM_ACCESSTOKEN"
      Write-Host "$env:SYSTEM_ACCESSTOKEN = $(System.AccessToken)"
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)

可以配置使用生成作业授权范围的默认范围System.AccessToken

System.Debug

有关调试管道问题的更详细日志,请定义 System.Debug 并将其设置为 true

  1. 编辑管道。

  2. 选择“变量”。

  3. 使用名称和 System.Debugtrue添加新变量。

    将系统调试设置为 true

  4. 保存新变量。

代理变量 (DevOps Services)

注意

可以将代理变量用作脚本中的环境变量,并在生成任务中用作参数。 不能使用它们自定义内部版本号或应用版本控制标签或标记。

变量说明
Agent.BuildDirectory

代理上创建给定生成管道的所有文件夹的本地路径。 此变量的值与 Pipeline.Workspace.

例如: /home/vsts/work/1

Agent.ContainerMapping

从 YAML 中的容器资源名称到运行时的 Docker ID 的映射。

例如:

{
  "one_container": {
    "id": "bdbb357d73a0bd3550a1a5b778b62a4c88ed2051c7802a0659f1ff6e76910190"
  },
  "another_container": {
    "id": "82652975109ec494876a8ccbb875459c945982952e0a72ad74c91216707162bb"
  }
}

Agent.HomeDirectory 代理安装到的目录。 这包括代理软件。 例如:c:\agent
Agent.Id 代理的 ID。
Agent.JobName 正在运行的作业的名称。 这通常是“作业”或“__default”,但在多配置方案中,将是配置。
Agent.JobStatus 生成的状态。
  • Canceled
  • Failed
  • Succeeded
  • SucceededWithIssues (部分成功)

环境变量应引用为 AGENT_JOBSTATUS。 较旧 agent.jobstatus 版本可用于向后兼容性。

Agent.MachineName 安装代理的计算机的名称。
Agent.Name

向池注册的代理的名称。

如果使用自承载代理,则此名称由你指定。 请参阅 代理

Agent.OS 代理主机的操作系统。 有效值是:
  • Windows_NT
  • Darwin
  • Linux
如果在容器中运行,代理主机和容器可能运行不同的操作系统。
Agent.OSArchitecture 代理主机的操作系统处理器体系结构。 有效值是:
  • X86
  • X64
  • ARM
Agent.TempDirectory

在每个管道作业后清理的临时文件夹。 . NET Core CLI 任务 等任务使用此目录在发布之前保存临时项,如测试结果。

例如: /home/vsts/work/_temp 对于 Ubuntu

Agent.ToolsDirectory 节点工具安装程序Python 版本等任务使用的目录可在工具的多个版本之间切换。 这些任务将从此目录中添加工具, PATH 以便后续生成步骤可以使用它们。

了解如何 在自承载代理上管理此目录
Agent.WorkFolder 此代理的工作目录。 例如:c:\agent_work

注意:管道任务无法保证此目录可写,例如 (。映射到容器) 时

生成变量 (DevOps Services)


变量说明可在 模板中使用?
Build.ArtifactStagingDirectory

将任何项目复制到其目标的代理上的本地路径。 例如: c:\agent_work\1\a

使用此文件夹的典型方法是使用复制文件和发布生成项目任务发布生成项目

注意:Build.ArtifactStagingDirectory 和 Build.StagingDirectory 可互换。 此目录在每个新生成之前被清除,因此无需自行清理。

请参阅 Azure Pipelines 中的项目

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.BuildId 已完成生成记录的 ID。
Build.BuildNumber 已完成生成的名称,也称为运行编号。 可以指定此值 中包含的内容

此变量的典型用法是在 存储库选项卡上指定的标签格式。

注意:此值可以包含空格或其他无效标签字符。 在这些情况下, 标签格式 将失败。



此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.BuildUri 生成的 URI。 例如:vstfs:///Build/Build/1430

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.BinariesDirectory 代理上的本地路径,可以用作已编译二进制文件的输出文件夹。

默认情况下,不会设置新的生成管道以清理此目录。 可以定义生成以在 “存储库”选项卡上清理它。

例如:c:\agent_work\1\b

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.ContainerId 项目的容器 ID。 在管道中上传项目时,它会添加到特定于该特定项目的容器中。
Build.DefinitionName 生成管道的名称。

注意:此值可以包含空格或其他无效标签字符。 在这些情况下, 标签格式 将失败。

Build.DefinitionVersion 生成管道的版本。
Build.QueuedBy 请参阅“如何设置标识变量?”。

注意:此值可以包含空格或其他无效标签字符。 在这些情况下, 标签格式 将失败。

Build.QueuedById 请参阅“如何设置标识变量?”。
Build.Reason 导致生成运行的事件。
  • Manual:用户手动对生成进行排队。
  • IndividualCI:由 Git 推送或 TFVC 签入触发 的 CI) (持续集成
  • BatchedCI持续集成 (CI) 由 Git 推送或 TFVC 签入触发,并且选择了 Batch 更改
  • Schedule计划的 触发器。
  • ValidateShelveset:用户手动将特定 TFVC 货架集的生成排队。
  • CheckInShelveset封闭式签入 触发器。
  • PullRequest:生成是由需要生成的 Git 分支策略触发的。
  • ResourceTrigger:生成 由资源触发器触发 ,或者 由另一个生成触发
请参阅 生成管道触发器使用分支策略提高代码质量
Build.Repository.Clean 源存储库设置中选择“清理”的值。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.LocalPath

下载源代码文件的代理上的本地路径。 例如: c:\agent_work\1\s

默认情况下,新的生成管道仅更新已更改的文件。 可以修改文件在 “存储库”选项卡上下载的方式。

重要说明:如果只签出一个 Git 存储库,此路径将是代码的确切路径。 如果签出多个存储库,则行为如下 (,可能与 Build.SourcesDirectory 变量的值) 不同:

  • 如果自 (主) 存储库的签出步骤未定义自定义签出路径,或者签出路径是自存储库的多签出默认路径 $(Pipeline.Workspace)/s/<RepoName> ,则此变量的值将还原为其默认值,即 $(Pipeline.Workspace)/s
  • 如果自 (主) 存储库的签出步骤定义了自定义签出路径 (,而不是其多签出默认路径) ,此变量将包含自存储库的确切路径。
此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.ID 存储库的唯一标识符。

即使存储库的名称确实如此,这也不会更改。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Name 触发 存储库的名称。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Provider 触发 存储库的类型。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Tfvc.Workspace 定义存储库是否Team Foundation 版本控制。 生成代理使用的 TFVC 工作区 的名称。


例如,如果 Agent.BuildDirectory 是 c:\agent_work\12 且 Agent.Id 8,则工作区名称可以是: ws_12_8

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Uri 触发存储库的 URL。 例如: 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.RequestedFor 请参阅“如何设置标识变量?”。

注意:此值可以包含空格或其他无效标签字符。 在这些情况下, 标签格式 将失败。

Build.RequestedForEmail 请参阅“如何设置标识变量?”。
Build.RequestedForId 请参阅“如何设置标识变量?”。
Build.SourceBranch 生成已排队的触发存储库的分支。 下面是一些示例:
  • Git 存储库分支: refs/heads/main
  • Git 存储库拉取请求: refs/pull/1/merge
  • TFVC 存储库分支: $/teamproject/main
  • TFVC 存储库封闭签入: Gated_2016-06-06_05.20.51.4369;username@live.com
  • TFVC 存储库搁置集生成: myshelveset;username@live.com
  • 当管道由标记触发时: refs/tags/your-tag-name
在内部版本号格式中使用此变量时, () 的正斜杠字符替换为下划线字符 /_) 。

注意:在 TFVC 中,如果运行的是封闭签入生成或手动构建货架集,则不能以内部版本号格式使用此变量。
Build.SourceBranchName 触发存储库中生成已排队的分支的名称。
  • Git 存储库分支、拉取请求或标记:ref 中的最后一个路径段。例如,此值为 refs/heads/mainmain. 此值为 refs/heads/feature/toolstools. 此值为 refs/tags/your-tag-nameyour-tag-name.
  • TFVC 存储库分支:工作区根服务器路径中的最后一个路径段。 例如,此值为 $/teamproject/mainmain.
  • TFVC 存储库封闭签入或货架集内部版本是货架集的名称。 例如,Gated_2016-06-06_05.20.51.4369;username@live.commyshelveset;username@live.com
注意:在 TFVC 中,如果运行的是封闭签入生成或手动构建货架集,则不能以内部版本号格式使用此变量。
Build.SourcesDirectory

下载源代码文件的代理上的本地路径。 例如: c:\agent_work\1\s

默认情况下,新的生成管道仅更新已更改的文件。

重要说明:如果只签出一个 Git 存储库,此路径将是代码的确切路径。 如果签出多个存储库,它将恢复到其默认值,即 $(Pipeline.Workspace)/s,即使将自 (主) 存储库签出到不同于其多签出默认路径 (的自定义路径 $(Pipeline.Workspace)/s/<RepoName> ,在这方面,该变量不同于 Build.Repository.LocalPath 变量) 的行为。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.SourceVersion 此版本中包含的触发存储库的最新版本控制更改。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.SourceVersionMessage 触发存储库的提交或变更集的注释。 我们将消息截断为第一行或 200 个字符,以较短者为准。

对应于 Build.SourceVersionMessage 提交时 Build.SourceVersion 的消息。 Build.SourceVersion PR 生成的提交是合并提交 (源分支上的提交) 。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。 此外,此变量仅在步骤级别可用,且在作业级别和阶段级别均不可用, (也就是说,在作业启动并签出代码) 之前,不会提取消息。

注意:此变量在 TFS 2015.4 中可用。

Build.StagingDirectory

将任何项目复制到其目标的代理上的本地路径。 例如: c:\agent_work\1\a

使用此文件夹的典型方法是使用复制文件和发布生成项目任务发布生成项目

注意:Build.ArtifactStagingDirectory 和 Build.StagingDirectory 可互换。 此目录在每个新生成之前被清除,因此无需自行清理。

请参阅 Azure Pipelines 中的项目

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.Repository.Git.SubmoduleCheckout 存储库选项卡上“签出”子模块选择的值。签出多个存储库后,此值将跟踪触发存储库的设置。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.SourceTfvcShelveset 定义存储库是否Team Foundation 版本控制


如果运行的是 封闭式内部版本货架集,则会将其设置为要构建的 货架集 的名称。

注意:此变量生成一个值,该值对于内部版本号格式的生成使用无效。
Build.TriggeredBy.BuildId 如果生成 是由另一个生成触发的,则此变量将设置为触发生成的 BuildID。 在经典管道中,此变量由生成完成触发器触发。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

如果要使用 resourcesYAML 管道,则应改用 资源变量
Build.TriggeredBy.DefinitionId 如果生成 是由另一个生成触发的,则此变量将设置为触发生成的 DefinitionID。 在经典管道中,此变量由生成完成触发器触发。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

如果要使用 resourcesYAML 管道,则应改用 资源变量
Build.TriggeredBy.DefinitionName 如果生成 是由另一个生成触发的,则此变量将设置为触发生成管道的名称。 在经典管道中,此变量由生成完成触发器触发。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

如果要使用 resourcesYAML 管道,则应改用 资源变量
Build.TriggeredBy.BuildNumber 如果生成 是由另一个生成触发的,则此变量设置为触发生成的数目。 在经典管道中,此变量由生成完成触发器触发。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

如果要使用 resourcesYAML 管道,则应改用 资源变量
Build.TriggeredBy.ProjectID 如果生成 是由另一个生成触发的,则此变量设置为包含触发生成的项目的 ID。 在经典管道中,此变量由生成完成触发器触发。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

如果要使用 resourcesYAML 管道,则应改用 资源变量
Common.TestResultsDirectory 在其中创建测试结果的代理上的本地路径。 例如: c:\agent_work\1\TestResults

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

管道变量 (DevOps Services)

变量说明
Pipeline.Workspace 特定管道的工作区目录。 此变量的值与 Agent.BuildDirectory.

例如,/home/vsts/work/1

部署作业变量 (DevOps Services)

这些变量的范围限定为特定的 部署作业 ,并且仅在作业执行时解析。

变量说明
Environment.Name 部署作业中针对的环境的名称,用于运行部署步骤并记录部署历史记录。 例如 smarthotel-dev
Environment.Id 部署作业中面向的环境 ID。 例如 10
Environment.ResourceName 部署作业中针对环境的特定资源的名称,用于运行部署步骤并记录部署历史记录。 例如, bookings 它是作为资源添加到环境的 smarthotel-devKubernetes 命名空间。
Environment.ResourceId 针对部署作业环境中特定资源的 ID,以运行部署步骤。 例如,4
Strategy.Name 部署策略的名称:canaryrunOncerolling
Strategy.CycleName 部署中的当前周期名称。 选项为 PreIterationIterationPostIteration

系统变量 (DevOps Services)

变量说明模板中可用?
System.AccessToken 使用 OAuth 令牌访问 REST API

使用 YAML 脚本的 System.AccessToken

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
System.CollectionId TFS 集合或 Azure DevOps 组织的 GUID。
System.CollectionUri TFS 集合或 Azure DevOps 组织的 URI。 例如:https://dev.azure.com/fabrikamfiber/
System.DefaultWorkingDirectory

下载源代码文件的代理上的本地路径。 例如: c:\agent_work\1\s

默认情况下,新的生成管道仅更新已更改的文件。 可以修改在 “存储库”选项卡上下载文件的方式。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

System.DefinitionId 生成管道的 ID。
System.HostType build设置为管道是否为生成。 对于发布,这些值适用于 deployment 部署组作业、 gates 评估入口期间,以及其他 release (代理和无代理) 作业。
System.JobAttempt 首次尝试此作业时设置为 1,每次重试作业时递增。
System.JobDisplayName 为作业提供人类可读的名称。
System.JobId 单个作业尝试的唯一标识符。 该值对当前管道是唯一的。
System.JobName 作业的名称,通常用于表示依赖项和访问输出变量。
System.PhaseAttempt 首次尝试此阶段时设置为 1,并在每次重试作业时递增。

注意: “阶段”是一个大部分冗余的概念,它表示作业的设计时间 (,而作业是阶段) 的运行时版本。 我们大多从 Azure Pipelines 中删除了“阶段”的概念。 矩阵和多配置作业是唯一一个“阶段”与“作业”不同的位置。 一个阶段可以实例化多个作业,这些作业仅在输入中有所不同。
System.PhaseDisplayName 给定阶段的可读名称。
System.PhaseName 作业的基于字符串的标识符,通常用于表示依赖项和访问输出变量。
System.PlanId 单个管道运行的基于字符串的标识符。
System.PullRequest.IsFork 如果拉取请求来自存储库的分支,则此变量设置为 True。 否则,它设置为 False
System.PullRequest.PullRequestId 导致此生成的拉取请求的 ID。 例如:17。 (仅当生成因 受分支策略影响而受分支策略影响的 Git PR) 时,才会初始化此变量。
System.PullRequest.PullRequestNumber 导致此生成的拉取请求的数目。 为 GitHub 中的拉取请求填充此变量,该请求具有不同的拉取请求 ID 和拉取请求编号。 仅当 PR 受分支策略影响时,此变量才可在 YAML 管道中使用。
System.PullRequest.SourceBranch 正在拉取请求中查看的分支。 例如:refs/heads/users/raisa/new-feature对于Azure Repos。 (仅当生成因 受分支策略影响而受分支策略影响的 Git PR) 时,才会初始化此变量。 仅当 PR 受分支策略影响时,此变量才可在 YAML 管道中使用。
System.PullRequest.SourceRepositoryURI 包含拉取请求的存储库的 URL。 例如:https://dev.azure.com/ouraccount/_git/OurProject
System.PullRequest.TargetBranch 作为拉取请求目标的分支。 例如:refs/heads/main当存储库处于Azure Repos和main存储库位于 GitHub 中时。 仅当生成因 受分支策略影响的 Git PR 而运行时,才会初始化此变量。 仅当 PR 受分支策略影响时,此变量才可在 YAML 管道中使用。
System.StageAttempt 首次尝试此阶段时设置为 1,每次重试作业时递增。
System.StageDisplayName 给定阶段的可读名称。
System.StageName 阶段的基于字符串的标识符,通常用于表示依赖项和访问输出变量。
System.TeamFoundationCollectionUri TFS 集合或 Azure DevOps 组织的 URI。 例如:https://dev.azure.com/fabrikamfiber/

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
System.TeamProject 包含此生成的项目的名称。
System.TeamProjectId 此生成所属的项目的 ID。
System.TimelineId 单个管道运行的执行详细信息和日志的基于字符串的标识符。
TF_BUILD 设置为 True 脚本是否由生成任务运行。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

检查变量 (DevOps Services)

变量说明
Checks.StageAttempt 首次尝试此阶段时设置为 1,每次重试阶段时递增。

此变量只能在 审批或检查 环境中使用。 例如,可以在调用 REST API 检查中使用$(Checks.StageAttempt)

Add the stage attempt as a parameter.

代理变量 (DevOps Server 2020)

备注

可以将代理变量用作脚本中的环境变量,并在生成任务中用作参数。 不能使用它们自定义内部版本号或应用版本控制标签或标记。

变量说明
Agent.BuildDirectory

代理上创建给定生成管道的所有文件夹的本地路径。 此变量的值与 Pipeline.Workspace.

例如: /home/vsts/work/1

Agent.HomeDirectory 代理安装到的目录。 这包括代理软件。 例如:c:\agent
Agent.Id 代理的 ID。
Agent.JobName 正在运行的作业的名称。 这通常是“作业”或“__default”,但在多配置方案中,将是配置。
Agent.JobStatus 生成的状态。
  • Canceled
  • Failed
  • Succeeded
  • SucceededWithIssues (部分成功)

环境变量应引用为 AGENT_JOBSTATUS。 较旧 agent.jobstatus 版本可用于向后兼容性。

Agent.MachineName 安装代理的计算机的名称。
Agent.Name

向池注册的代理的名称。

如果使用自承载代理,则此名称由你指定。 请参阅 代理

Agent.OS 代理主机的操作系统。 有效值是:
  • Windows_NT
  • Darwin
  • Linux
如果在容器中运行,代理主机和容器可能运行不同的操作系统。
Agent.OSArchitecture 代理主机的操作系统处理器体系结构。 有效值是:
  • X86
  • X64
  • ARM
Agent.TempDirectory

在每个管道作业后清理的临时文件夹。 此目录由 .NET Core CLI 任务 等任务使用,用于在发布临时项(如测试结果)之前保存这些临时项。

例如: /home/vsts/work/_temp 对于 Ubuntu

Agent.ToolsDirectory 节点工具安装程序和使用 Python 版本等任务使用的目录可在工具的多个版本之间切换。 这些任务将从此目录中添加工具, PATH 以便后续生成步骤可以使用它们。

了解如何 在自承载代理上管理此目录
Agent.WorkFolder 此代理的工作目录。 例如:c:\agent_work

注意:此目录不能保证由管道任务 ((例如)可写入。映射到容器)

(DevOps Server 2020) 生成变量


变量说明在模板中可用?
Build.ArtifactStagingDirectory

将任何项目复制到其目标的代理上的本地路径。 例如: c:\agent_work\1\a

使用此文件夹的典型方法是使用复制文件和发布生成项目任务发布生成项目

注意:Build.ArtifactStagingDirectory 和 Build.StagingDirectory 是可互换的。 此目录在每个新生成之前清除,因此无需自行清理。

请参阅 Azure Pipelines 中的项目

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.BuildId 已完成生成记录的 ID。
Build.BuildNumber 已完成的生成的名称,也称为运行编号。 可以指定此值 中包含的内容

此变量的典型用法是在 存储库选项卡上指定的标签格式的一部分。

注意:此值可以包含空格或其他无效的标签字符。 在这些情况下, 标签格式 将失败。



此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.BuildUri 生成的 URI。 例如:vstfs:///Build/Build/1430

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.BinariesDirectory 代理上的本地路径,可以用作已编译二进制文件的输出文件夹。

默认情况下,不会设置新的生成管道来清理此目录。 可以定义生成以在 “存储库”选项卡上清理它。

例如:c:\agent_work\1\b

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.ContainerId 项目的容器 ID。 在管道中上传项目时,它会添加到特定于该特定项目的容器中。
Build.DefinitionName 生成管道的名称。

注意:此值可以包含空格或其他无效的标签字符。 在这些情况下, 标签格式 将失败。

Build.DefinitionVersion 生成管道的版本。
Build.QueuedBy 请参阅“如何设置标识变量?”。

注意:此值可以包含空格或其他无效的标签字符。 在这些情况下, 标签格式 将失败。

Build.QueuedById 请参阅“如何设置标识变量?”。
Build.Reason 导致生成运行的事件。
  • Manual:用户手动排队生成。
  • IndividualCI:由 Git 推送或 TFVC 签入触发 的持续集成 (CI)
  • BatchedCI:由 Git 推送或 TFVC 签入触发的持续 集成 (CI) ,并且选择了 Batch 更改
  • Schedule计划的 触发器。
  • ValidateShelveset:用户手动对特定 TFVC 货架集的生成进行排队。
  • CheckInShelveset封闭式签入 触发器。
  • PullRequest:生成是由需要生成的 Git 分支策略触发的。
  • ResourceTrigger:生成 由资源触发器触发 ,或者 由另一个生成触发
请参阅 生成管道触发器使用分支策略提高代码质量
Build.Repository.Clean 源存储库设置中选择“清理”的值。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.LocalPath

下载源代码文件的代理上的本地路径。 例如: c:\agent_work\1\s

默认情况下,新的生成管道仅更新已更改的文件。 可以修改在 “存储库”选项卡上下载文件的方式。

重要说明:如果只签出一个 Git 存储库,此路径将是代码的确切路径。 如果签出多个存储库,则行为如下 (,可能与 Build.SourcesDirectory 变量的值) 不同:

  • 如果自 (主) 存储库的签出步骤未定义自定义签出路径,或者签出路径是自存储库的多签出默认路径 $(Pipeline.Workspace)/s/<RepoName> ,则此变量的值将还原为其默认值,即 $(Pipeline.Workspace)/s
  • 如果自 (主) 存储库的签出步骤定义了自定义签出路径 (且不是其多签出默认路径) ,则此变量将包含自存储库的确切路径。
此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.ID 存储库的唯一标识符。

即使存储库的名称确实如此,这也不会更改。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Name 触发 存储库的名称。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Provider 触发 存储库的类型。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Tfvc.Workspace 定义存储库是否Team Foundation 版本控制。 生成代理使用的 TFVC 工作区 的名称。


例如,如果 Agent.BuildDirectory 是 c:\agent_work\12 且 Agent.Id 8,则工作区名称可以是: ws_12_8

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Uri 触发存储库的 URL。 例如: 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.RequestedFor 请参阅“如何设置标识变量?”。

注意:此值可以包含空格或其他无效标签字符。 在这些情况下, 标签格式 将失败。

Build.RequestedForEmail 请参阅“如何设置标识变量?”。
Build.RequestedForId 请参阅“如何设置标识变量?”。
Build.SourceBranch 生成已排队的触发存储库的分支。 下面是一些示例:
  • Git 存储库分支: refs/heads/main
  • Git 存储库拉取请求: refs/pull/1/merge
  • TFVC 存储库分支: $/teamproject/main
  • TFVC 存储库封闭签入: Gated_2016-06-06_05.20.51.4369;username@live.com
  • TFVC 存储库搁置集生成: myshelveset;username@live.com
  • 当管道由标记触发时: refs/tags/your-tag-name
在内部版本号格式中使用此变量时, () 的正斜杠字符替换为下划线字符 /_) 。

注意:在 TFVC 中,如果运行的是封闭签入生成或手动构建货架集,则不能以内部版本号格式使用此变量。
Build.SourceBranchName 触发存储库中生成已排队的分支的名称。
  • Git 存储库分支、拉取请求或标记:ref 中的最后一个路径段。例如,此值为 refs/heads/mainmain. 此值为 refs/heads/feature/toolstools. 此值为 refs/tags/your-tag-nameyour-tag-name.
  • TFVC 存储库分支:工作区根服务器路径中的最后一个路径段。 例如,此值为 $/teamproject/mainmain.
  • TFVC 存储库封闭签入或货架集内部版本是货架集的名称。 例如,Gated_2016-06-06_05.20.51.4369;username@live.commyshelveset;username@live.com
注意:在 TFVC 中,如果运行的是封闭签入生成或手动构建货架集,则不能以内部版本号格式使用此变量。
Build.SourcesDirectory

下载源代码文件的代理上的本地路径。 例如: c:\agent_work\1\s

默认情况下,新的生成管道仅更新已更改的文件。

重要说明:如果只签出一个 Git 存储库,此路径将是代码的确切路径。 如果签出多个存储库,它将恢复到其默认值,即 $(Pipeline.Workspace)/s,即使将自 (主) 存储库签出到不同于其多签出默认路径 (的自定义路径 $(Pipeline.Workspace)/s/<RepoName> ,在这方面,该变量不同于 Build.Repository.LocalPath 变量) 的行为。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.SourceVersion 此版本中包含的触发存储库的最新版本控制更改。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.SourceVersionMessage 触发存储库的提交或变更集的注释。 我们将消息截断为第一行或 200 个字符,以较短者为准。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。 此外,此变量仅在步骤级别可用,且在作业级别和阶段级别均不可用, (也就是说,在作业启动并签出代码) 之前,不会提取消息。

注意:此变量在 TFS 2015.4 中可用。

Build.StagingDirectory

将任何项目复制到其目标的代理上的本地路径。 例如: c:\agent_work\1\a

使用此文件夹的典型方法是使用复制文件和发布生成项目任务发布生成项目

注意:Build.ArtifactStagingDirectory 和 Build.StagingDirectory 可互换。 此目录在每个新生成之前被清除,因此无需自行清理。

请参阅 Azure Pipelines 中的项目

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.Repository.Git.SubmoduleCheckout 存储库选项卡上“签出”子模块选择的值。签出多个存储库后,此值将跟踪触发存储库的设置。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.SourceTfvcShelveset 定义存储库是否Team Foundation 版本控制


如果运行的是 封闭生成货架集内部版本,则设置为要构建的 货架集 的名称。

注意:此变量生成一个值,该值对内部版本号格式的生成使用无效。
Build.TriggeredBy.BuildId 如果生成 是由另一个生成触发的,则此变量设置为触发生成的 BuildID。 在经典管道中,此变量由生成完成触发器触发。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.TriggeredBy.DefinitionId 如果生成 是由另一个生成触发的,则此变量设置为触发生成的 DefinitionID。 在经典管道中,此变量由生成完成触发器触发。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.TriggeredBy.DefinitionName 如果生成 是由另一个生成触发的,则此变量设置为触发生成管道的名称。 在经典管道中,此变量由生成完成触发器触发。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.TriggeredBy.BuildNumber 如果生成 是由另一个生成触发的,则此变量设置为触发生成的数目。 在经典管道中,此变量由生成完成触发器触发。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.TriggeredBy.ProjectID 如果生成 是由另一个生成触发的,则此变量设置为包含触发生成的项目的 ID。 在经典管道中,此变量由生成完成触发器触发。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Common.TestResultsDirectory 在其中创建测试结果的代理上的本地路径。 例如: c:\agent_work\1\TestResults

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

管道变量 (DevOps Server 2020)

变量说明
Pipeline.Workspace 特定管道的工作区目录。 此变量的值与 Agent.BuildDirectory.

例如 /home/vsts/work/1

部署作业变量 (DevOps Server 2020)

这些变量的范围限定为特定的 部署作业 ,并且仅在作业执行时解析。

变量说明
Environment.Name 部署作业中针对的环境的名称,用于运行部署步骤并记录部署历史记录。 例如 smarthotel-dev
Environment.Id 部署作业中面向的环境 ID。 例如,10
Environment.ResourceName 部署作业中针对环境的特定资源的名称,用于运行部署步骤并记录部署历史记录。 例如, bookings 它是作为资源添加到环境的 smarthotel-devKubernetes 命名空间。
Environment.ResourceId 针对部署作业环境中特定资源的 ID,以运行部署步骤。 例如 4

系统变量 (DevOps Server 2020)

变量说明在模板中可用?
System.AccessToken 使用 OAuth 令牌访问 REST API

使用 YAML 脚本的 System.AccessToken

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
System.CollectionId TFS 集合或 Azure DevOps 组织的 GUID
System.CollectionUri 字符串 Team Foundation Server 集合 URI。
System.DefaultWorkingDirectory

下载源代码文件的代理上的本地路径。 例如: c:\agent_work\1\s

默认情况下,新的生成管道仅更新已更改的文件。 可以修改在 “存储库”选项卡上下载文件的方式。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

System.DefinitionId 生成管道的 ID。
System.HostType build设置为管道是否为生成。 对于发布,这些值适用于 deployment 部署组作业、 gates 评估入口期间,以及其他 release (代理和无代理) 作业。
System.JobAttempt 首次尝试此作业时设置为 1,每次重试作业时递增。
System.JobDisplayName 为作业提供人类可读的名称。
System.JobId 单个作业尝试的唯一标识符。 该值对当前管道是唯一的。
System.JobName 作业的名称,通常用于表示依赖项和访问输出变量。
System.PhaseAttempt 首次尝试此阶段时设置为 1,并在每次重试作业时递增。

注意: “阶段”是一个大部分冗余的概念,它表示作业的设计时间 (,而作业是阶段) 的运行时版本。 我们大多从 Azure Pipelines 中删除了“阶段”的概念。 矩阵和多配置作业是唯一一个“阶段”与“作业”不同的位置。 一个阶段可以实例化多个作业,这些作业仅在输入中有所不同。
System.PhaseDisplayName 给定阶段的可读名称。
System.PhaseName 作业的基于字符串的标识符,通常用于表示依赖项和访问输出变量。
System.StageAttempt 首次尝试此阶段时设置为 1,每次重试作业时都会递增。
System.StageDisplayName 为阶段提供人类可读的名称。
System.StageName 阶段的基于字符串的标识符,通常用于表示依赖项和访问输出变量。
System.PullRequest.IsFork 如果拉取请求来自存储库的分支,则此变量设置为 True。 否则,它设置为 False
System.PullRequest.PullRequestId 导致此生成的拉取请求的 ID。 例如:17。 (仅当生成因 受分支策略影响而运行的 Git PR) 时,才会初始化此变量。
System.PullRequest.PullRequestNumber 导致此生成的拉取请求数。 为 GitHub 的拉取请求填充此变量,其中包含不同的拉取请求 ID 和拉取请求号。 如果 PR 受分支策略影响,则此变量仅在 YAML 管道中可用。
System.PullRequest.SourceBranch 正在拉取请求中查看的分支。 例如:refs/heads/users/raisa/new-feature。 (仅当生成因 受分支策略影响而运行的 Git PR) 时,才会初始化此变量。 仅当 PR 受分支策略影响时,此变量才在 YAML 管道中可用。
System.PullRequest.SourceRepositoryURI 包含拉取请求的存储库的 URL。 例如:https://dev.azure.com/ouraccount/_git/OurProject
System.PullRequest.TargetBranch 作为拉取请求目标的分支。 例如:refs/heads/main存储库位于Azure Repos中,main存储库位于 GitHub 中时。 仅当生成因 受分支策略影响的 Git PR 而运行时,才会初始化此变量。 仅当 PR 受分支策略影响时,此变量才在 YAML 管道中可用。
System.TeamFoundationCollectionUri 团队基础集合的 URI。 例如: https://dev.azure.com/fabrikamfiber/

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
System.TeamProject 包含此生成的项目的名称。
System.TeamProjectId 此生成所属的项目 ID。
TF_BUILD True设置为脚本是否由生成任务运行。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

2019) 2019 (DevOps Server代理变量

备注

可以将代理变量用作脚本中的环境变量,并在生成任务中用作参数。 不能使用它们来自定义内部版本号或应用版本控制标签或标记。

变量说明
Agent.BuildDirectory

在其中创建给定生成管道的所有文件夹的代理上的本地路径。

例如: c:\agent_work\1

Agent.HomeDirectory 代理安装到的目录。 这包括代理软件。 例如:c:\agent
Agent.Id 代理的 ID。
Agent.JobName 正在运行的作业的名称。 这通常是“作业”或“__default”,但在多配置方案中,将是配置。
Agent.JobStatus 生成的状态。
  • Canceled
  • Failed
  • Succeeded
  • SucceededWithIssues (部分成功)

环境变量应引用为 AGENT_JOBSTATUS. 旧版本 agent.jobstatus 可用于向后兼容性。

Agent.MachineName 安装代理的计算机的名称。
Agent.Name

向池注册的代理的名称。

如果使用自承载代理,则此名称由你指定。 请参阅 代理

Agent.OS 代理主机的操作系统。 有效值是:
  • Windows_NT
  • Darwin
  • Linux
如果在容器中运行,代理主机和容器可能运行不同的操作系统。
Agent.OSArchitecture 代理主机的操作系统处理器体系结构。 有效值是:
  • X86
  • X64
  • ARM
Agent.TempDirectory 在每个管道作业后清理的临时文件夹。 此目录由 .NET Core CLI 任务 等任务使用,用于在发布临时项(如测试结果)之前保存这些临时项。
Agent.ToolsDirectory 节点工具安装程序和使用 Python 版本等任务使用的目录可在工具的多个版本之间切换。 这些任务将从此目录中添加工具, PATH 以便后续生成步骤可以使用它们。

了解如何 在自承载代理上管理此目录
Agent.WorkFolder 此代理的工作目录。 例如:c:\agent_work

此目录无法保证由管道任务 ((例如)可写入。映射到容器)

(DevOps Server 2019) 生成变量


变量说明
Build.ArtifactStagingDirectory

将任何项目复制到其目标的代理上的本地路径。 例如: c:\agent_work\1\a

使用此文件夹的典型方法是使用复制文件和发布生成项目任务发布生成项目

注意:Build.ArtifactStagingDirectory 和 Build.StagingDirectory 是可互换的。 此目录在每个新生成之前清除,因此无需自行清理。

请参阅 Azure Pipelines 中的项目

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.BuildId 已完成生成记录的 ID。
Build.BuildNumber 已完成生成的名称。 可以在 管道选项中指定生成此值的生成号格式。

此变量的典型用法是在 存储库选项卡上指定的标签格式的一部分。

注意:此值可以包含空格或其他无效的标签字符。 在这些情况下, 标签格式 将失败。



此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.BuildUri 生成的 URI。 例如:vstfs:///Build/Build/1430

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.BinariesDirectory 代理上的本地路径,可以用作已编译二进制文件的输出文件夹。

默认情况下,不会设置新的生成管道来清理此目录。 可以定义生成以在 “存储库”选项卡上清理它。

例如:c:\agent_work\1\b

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.DefinitionName 生成管道的名称。

注意:此值可以包含空格或其他无效的标签字符。 在这些情况下, 标签格式 将失败。

Build.DefinitionVersion 生成管道的版本。
Build.QueuedBy 请参阅“如何设置标识变量?”。

注意:此值可以包含空格或其他无效的标签字符。 在这些情况下, 标签格式 将失败。

Build.QueuedById 请参阅“如何设置标识变量?”。
Build.Reason 导致生成运行的事件。
  • Manual:用户手动排队生成。
  • IndividualCI:由 Git 推送或 TFVC 签入触发 的持续集成 (CI)
  • BatchedCI:由 Git 推送或 TFVC 签入触发的持续 集成 (CI) ,并且选择了 Batch 更改
  • Schedule计划的 触发器。
  • ValidateShelveset:用户手动对特定 TFVC 货架集的生成进行排队。
  • CheckInShelveset封闭式签入 触发器。
  • PullRequest:生成是由需要生成的 Git 分支策略触发的。
  • BuildCompletion:生成 是由另一个生成触发的
请参阅 生成管道触发器使用分支策略提高代码质量
Build.Repository.Clean 源存储库设置中选择“清理”的值。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.LocalPath

下载源代码文件的代理上的本地路径。 例如: c:\agent_work\1\s

默认情况下,新的生成管道仅更新已更改的文件。 可以修改在 “存储库”选项卡上下载文件的方式。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

此变量与 Build.SourcesDirectory 同义词。

Build.Repository.Name 存储库的名称。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Provider 所选存储库的类型。 此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Tfvc.Workspace 定义存储库是否Team Foundation 版本控制。 生成代理使用的 TFVC 工作区 的名称。


例如,如果 Agent.BuildDirectory 为 c:\agent_work\12 Agent.Id 8,则工作区名称可以是: ws_12_8

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Uri 存储库的 URL。 例如: 此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.RequestedFor 请参阅“如何设置标识变量?”。

注意:此值可以包含空格或其他无效的标签字符。 在这些情况下, 标签格式 将失败。

Build.RequestedForEmail 请参阅“如何设置标识变量?”。
Build.RequestedForId 请参阅“如何设置标识变量?”。
Build.SourceBranch 生成已排队的分支。 下面是一些示例:
  • Git 存储库分支: refs/heads/main
  • Git 存储库拉取请求: refs/pull/1/merge
  • TFVC 存储库分支: $/teamproject/main
  • TFVC 存储库封闭签入: Gated_2016-06-06_05.20.51.4369;username@live.com
  • TFVC 存储库货架集内部版本: myshelveset;username@live.com
在内部版本号格式中使用此变量时, () 的正斜杠字符 / 将替换为下划线字符 _) 。

注意:在 TFVC 中,如果运行的是封闭式签入生成或手动构建货架集,则不能以内部版本号格式使用此变量。
Build.SourceBranchName 生成已排队的分支的名称。
  • Git 存储库分支、拉取请求或标记:ref 中的最后一个路径段。例如,此值为 refs/heads/mainmain. 在此值中 refs/heads/feature/toolstools. 在此值中 refs/tags/your-tag-nameyour-tag-name.
  • TFVC 存储库分支:工作区根服务器路径中的最后一个路径段。 例如, $/teamproject/main 此值为 main.
  • TFVC 存储库封闭的签入或货架集生成是货架集的名称。 例如,Gated_2016-06-06_05.20.51.4369;username@live.commyshelveset;username@live.com
注意:在 TFVC 中,如果运行的是封闭式签入生成或手动构建货架集,则不能以内部版本号格式使用此变量。
Build.SourcesDirectory

下载源代码文件的代理上的本地路径。 例如: c:\agent_work\1\s

默认情况下,新的生成管道仅更新已更改的文件。 可以修改在 “存储库”选项卡上下载文件的方式。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

此变量与 Build.Repository.LocalPath 同义词。

Build.SourceVersion 此版本中包含的最新版本控件更改。 此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.SourceVersionMessage 提交或变更集的注释。 我们将消息截断为第一行或 200 个字符,以较短为准。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

注意:此变量在 TFS 2015.4 中可用。

Build.StagingDirectory

将任何项目复制到其目标的代理上的本地路径。 例如: c:\agent_work\1\a

使用此文件夹的典型方法是使用复制文件和发布生成项目任务发布生成项目

注意:Build.ArtifactStagingDirectory 和 Build.StagingDirectory 是可互换的。 此目录在每个新生成之前清除,因此无需自行清理。

请参阅 Azure Pipelines 中的项目

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.Repository.Git.SubmoduleCheckout 存储库选项卡上“签出”子模块选择的值。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.SourceTfvcShelveset 定义存储库是否Team Foundation 版本控制


如果运行的是 封闭生成货架集内部版本,则设置为要构建的 货架集 的名称。

注意:此变量生成一个值,该值对内部版本号格式的生成使用无效。
Build.TriggeredBy.BuildId 如果生成 是由另一个生成触发的,则此变量设置为触发生成的 BuildID。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.TriggeredBy.DefinitionId 如果生成 是由另一个生成触发的,则此变量设置为触发生成的 DefinitionID。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.TriggeredBy.DefinitionName 如果生成 是由另一个生成触发的,则此变量设置为触发生成管道的名称。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.TriggeredBy.BuildNumber 如果生成 是由另一个生成触发的,则此变量设置为触发生成的数目。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.TriggeredBy.ProjectID 如果生成 是由另一个生成触发的,则此变量设置为包含触发生成的项目的 ID。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Common.TestResultsDirectory 在其中创建测试结果的代理上的本地路径。 例如: c:\agent_work\1\TestResults

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

系统变量 (DevOps Server 2019)

变量说明
System.AccessToken 使用 OAuth 令牌访问 REST API

使用 YAML 脚本的 System.AccessToken

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
System.CollectionId TFS 集合或 Azure DevOps 组织的 GUID
System.DefaultWorkingDirectory

下载源代码文件的代理上的本地路径。 例如: c:\agent_work\1\s

默认情况下,新的生成管道仅更新已更改的文件。 可以修改在 “存储库”选项卡上下载文件的方式。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

System.DefinitionId 生成管道的 ID。
System.HostType build设置为管道是否为生成。 对于发布,这些值适用于 deployment 部署组作业和 release 代理作业。
System.PullRequest.IsFork 如果拉取请求来自存储库的分支,则此变量设置为 True。 否则,它设置为 False
System.PullRequest.PullRequestId 导致此生成的拉取请求的 ID。 例如:17。 (仅当生成因 受分支策略影响的 Git PR 而运行时,才会初始化此变量。)
System.PullRequest.PullRequestNumber 导致此生成的拉取请求数。 为 GitHub 的拉取请求填充此变量,其中包含不同的拉取请求 ID 和拉取请求号。
System.PullRequest.SourceBranch 正在拉取请求中查看的分支。 例如:refs/heads/users/raisa/new-feature。 (仅当生成因 受分支策略影响的 Git PR 而运行时,才会初始化此变量。)
System.PullRequest.SourceRepositoryURI 包含拉取请求的存储库的 URL。 例如:https://dev.azure.com/ouraccount/_git/OurProject。 (仅当生成由于受分支策略影响的Azure Repos Git PR 而运行时,才会初始化此变量。它未初始化为 GitHub PRs.)
System.PullRequest.TargetBranch 作为拉取请求目标的分支。 例如:refs/heads/main。 仅当生成因 受分支策略影响的 Git PR 而运行时,才会初始化此变量。
System.TeamFoundationCollectionUri 团队基础集合的 URI。 例如:https://dev.azure.com/fabrikamfiber/

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
System.TeamProject 包含此生成的项目的名称。
System.TeamProjectId 此生成所属的项目 ID。
TF_BUILD True设置为脚本是否由生成任务运行。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

代理变量 (TFS 2018)

注意

可以将代理变量用作脚本中的环境变量,并在生成任务中用作参数。 不能使用它们来自定义内部版本号或应用版本控制标签或标记。

变量说明
Agent.BuildDirectory

在其中创建给定生成管道的所有文件夹的代理上的本地路径。

例如: c:\agent_work\1

Agent.HomeDirectory 代理安装到的目录。 这包括代理软件。 例如:c:\agent
Agent.Id 代理的 ID。
Agent.JobStatus 生成的状态。
  • Canceled
  • Failed
  • Succeeded
  • SucceededWithIssues (部分成功)

环境变量应引用为 AGENT_JOBSTATUS. 旧版本 agent.jobstatus 可用于向后兼容性。

Agent.MachineName 安装代理的计算机的名称。
Agent.Name

向池注册的代理的名称。

此名称由你指定。 请参阅 代理

Agent.TempDirectory 在每个管道作业后清理的临时文件夹。 此目录由 .NET Core CLI 任务 等任务使用,用于在发布临时项(如测试结果)之前保存这些临时项。
Agent.ToolsDirectory 节点工具安装程序和使用 Python 版本等任务使用的目录可在工具的多个版本之间切换。 这些任务将从此目录中添加工具, PATH 以便后续生成步骤可以使用它们。

了解如何 在自承载代理上管理此目录
Agent.WorkFolder 此代理的工作目录。 例如:c:\agent_work

(TFS 2018) 生成变量


变量说明
Build.ArtifactStagingDirectory 将任何项目复制到其目标的代理上的本地路径。

将任何项目复制到其目标的代理上的本地路径。 例如: c:\agent_work\1\a

使用此文件夹的典型方法是使用复制文件和发布生成项目任务发布生成项目

注意:Build.ArtifactStagingDirectory 和 Build.StagingDirectory 可互换。 此目录在每个新生成之前被清除,因此无需自行清理。

请参阅 Azure Pipelines 中的项目

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.BuildId 已完成生成记录的 ID。
Build.BuildNumber 已完成生成的名称。 可以在 管道选项中指定生成此值的生成编号格式。

此变量的典型用法是在 存储库选项卡上指定的标签格式。

注意:此值可以包含空格或其他无效标签字符。 在这些情况下, 标签格式 将失败。



此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作版本控制标记。

Build.BuildUri 生成的 URI。 例如:vstfs:///Build/Build/1430

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.BinariesDirectory 代理上的本地路径,可以用作已编译二进制文件的输出文件夹。

默认情况下,不会设置新的生成管道以清理此目录。 可以定义生成以在 “存储库”选项卡上清理它。

例如:c:\agent_work\1\b

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.DefinitionName 生成管道的名称。

注意:此值可以包含空格或其他无效标签字符。 在这些情况下, 标签格式 将失败。

Build.DefinitionVersion 生成管道的版本。
Build.QueuedBy 请参阅“如何设置标识变量?”。

注意:此值可以包含空格或其他无效标签字符。 在这些情况下, 标签格式 将失败。

Build.QueuedById 请参阅“如何设置标识变量?”。
Build.Reason 导致生成运行的事件。
  • Manual:用户从 UI 或 API 调用手动对生成进行排队。
  • IndividualCI:由 Git 推送或 TFVC 签入触发 的 CI) (持续集成
  • BatchedCI持续集成 (CI) 由 Git 推送或 TFVC 签入触发,并且选择了 Batch 更改
  • Schedule计划的 触发器。
  • ValidateShelveset:用户手动将特定 TFVC 货架集的生成排队。
  • CheckInShelveset封闭式签入 触发器。
  • PullRequest:生成是由需要生成的 Git 分支策略触发的。
请参阅 生成管道触发器使用分支策略提高代码质量
Build.Repository.Clean 源存储库设置中选择“清理”的值。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.LocalPath

下载源代码文件的代理上的本地路径。 例如: c:\agent_work\1\s

默认情况下,新的生成管道仅更新已更改的文件。 可以修改文件在 “存储库”选项卡上下载的方式。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

此变量是 Build.SourcesDirectory 的同义词。

Build.Repository.Name 存储库的名称。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Provider 所选存储库的类型。 此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Tfvc.Workspace 定义存储库是否Team Foundation 版本控制。 生成代理使用的 TFVC 工作区 的名称。

例如,如果 Agent.BuildDirectory 是 c:\agent_work\12 且 Agent.Id 8,则工作区名称可以是: ws_12_8

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.Repository.Uri 存储库的 URL。 例如:
  • Git: https://fabrikamfiber/tfs/DefaultCollection/Scripts/_git/Scripts
  • TFVC: https://fabrikamfiber/tfs/DefaultCollection/
此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.RequestedFor 请参阅“如何设置标识变量?”。

注意:此值可以包含空格或其他无效标签字符。 在这些情况下, 标签格式 将失败。

Build.RequestedForEmail 请参阅“如何设置标识变量?”。
Build.RequestedForId 请参阅“如何设置标识变量?”。
Build.SourceBranch 生成已排队的分支。 下面是一些示例:
  • Git 存储库分支: refs/heads/main
  • Git 存储库拉取请求: refs/pull/1/merge
  • TFVC 存储库分支: $/teamproject/main
  • TFVC 存储库封闭签入: Gated_2016-06-06_05.20.51.4369;username@live.com
  • TFVC 存储库搁置集生成: myshelveset;username@live.com
在内部版本号格式中使用此变量时, () 的正斜杠字符替换为下划线字符 /_) 。

注意:在 TFVC 中,如果运行的是封闭签入生成或手动构建货架集,则不能以内部版本号格式使用此变量。
Build.SourceBranchName 生成已排队的分支的名称。
  • Git 存储库分支、拉取请求或标记:ref 中的最后一个路径段。例如,此值为 refs/heads/mainmain. 此值为 refs/heads/feature/toolstools.
  • TFVC 存储库分支:工作区根服务器路径中的最后一个路径段。 例如, $/teamproject/main 此值为 main. 此值为 refs/tags/your-tag-nameyour-tag-name.
  • TFVC 存储库封闭签入或货架集内部版本是货架集的名称。 例如,Gated_2016-06-06_05.20.51.4369;username@live.commyshelveset;username@live.com
注意:在 TFVC 中,如果运行的是封闭签入生成或手动构建货架集,则不能以内部版本号格式使用此变量。
Build.SourcesDirectory

下载源代码文件的代理上的本地路径。 例如: c:\agent_work\1\s

默认情况下,新的生成管道仅更新已更改的文件。 可以修改文件在 “存储库”选项卡上下载的方式。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

此变量是 Build.Repository.LocalPath 的同义词。

Build.SourceVersion 此版本中包含的最新版本控件更改。 此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.SourceVersionMessage 提交或变更集的注释。 我们将消息截断为第一行或 200 个字符,以较短者为准。

此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

注意:此变量在 TFS 2015.4 中可用。

Build.StagingDirectory

将任何项目复制到其目标的代理上的本地路径。 例如: c:\agent_work\1\a

使用此文件夹的典型方法是使用复制文件和发布生成项目任务发布生成项目

注意:Build.ArtifactStagingDirectory 和 Build.StagingDirectory 可互换。 此目录在每个新生成之前被清除,因此无需自行清理。

请参阅 Azure Pipelines 中的项目

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

Build.Repository.Git.SubmoduleCheckout 存储库选项卡上“签出”子模块选择的值。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
Build.SourceTfvcShelveset 定义存储库是否Team Foundation 版本控制

如果运行的是 封闭式内部版本货架集,则会将其设置为要构建的 货架集 的名称。

注意:此变量生成一个值,该值对于内部版本号格式的生成使用无效。
Common.TestResultsDirectory 在其中创建测试结果的代理上的本地路径。 例如: c:\agent_work\1\TestResults

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

TFS 2018 (系统变量)

变量说明
System.AccessToken 使用 OAuth 令牌访问 REST API

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
System.CollectionId TFS 集合或 Azure DevOps 组织的 GUID
System.DefaultWorkingDirectory

下载源代码文件的代理上的本地路径。 例如: c:\agent_work\1\s

默认情况下,新的生成管道仅更新已更改的文件。 可以修改文件在 “存储库”选项卡上下载的方式。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

System.DefinitionId 生成管道的 ID。
System.HostType 设置为 build 管道是生成,或者 release 管道是否为发布。
System.PullRequest.IsFork 如果拉取请求来自存储库的分支,则此变量设置为 True。 否则,它设置为 False。 在 TFS 2018.2 中可用。
System.PullRequest.PullRequestId 导致此生成的拉取请求的 ID。 例如:17。 (仅当生成因 受分支 policy.) 影响的 Git PR 而运行时,才会初始化此变量
System.PullRequest.SourceBranch 正在拉取请求中查看的分支。 例如:refs/heads/users/raisa/new-feature。 (仅当生成因 受分支 policy.) 影响的 Git PR 而运行时,才会初始化此变量
System.PullRequest.SourceRepositoryURI 包含拉取请求的存储库的 URL。 例如:http://our-server:8080/tfs/DefaultCollection/_git/OurProject。 (仅当生成因受分支策略影响的Azure Repos Git PR 而运行时,才会初始化此变量。)
System.PullRequest.TargetBranch 作为拉取请求目标的分支。 例如:refs/heads/main。 仅当生成因 受分支策略影响的 Git PR 而运行时,才会初始化此变量。
System.TeamFoundationCollectionUri 团队基础集合的 URI。 例如:http://our-server:8080/tfs/DefaultCollection/

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。
System.TeamProject 包含此生成的项目的名称。
System.TeamProjectId 此生成所属的项目的 ID。
TF_BUILD 设置为 True 脚本是否由生成任务运行。

此变量是代理范围的。 它可以用作脚本中的环境变量和生成任务中的参数,但不能用作内部版本号或版本控制标记的一部分。

如何设置标识变量?

该值取决于生成的原因,特定于Azure Repos存储库。

如果触发生成... 然后,Build.QueuedBy 和 Build.QueuedById 值基于... 然后,Build.RequestedFor 和 Build.RequestedForId 值基于...
在 Git 或 TFVC 中,通过 持续集成 (CI) 触发器 系统标识,例如: [DefaultCollection]\Project Collection Service Accounts 推送或签入更改的人员。
在 Git 中或通过 分支策略生成 系统标识,例如: [DefaultCollection]\Project Collection Service Accounts 签入更改的人员。
通过封闭签入触发器在 TFVC 中 签入更改的人员。 签入更改的人员。
计划触发器在 Git 或 TFVC 中 系统标识,例如: [DefaultCollection]\Project Collection Service Accounts 系统标识,例如: [DefaultCollection]\Project Collection Service Accounts
因为单击了 “队列生成 ”按钮