使用预定义变量
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
变量为你提供了一种简便方法,可以将关键数据位导入管道的各个部分。 这是可供使用的预定义变量的列表。 可能有一些其他预定义的变量,但它们大多供内部使用。
这些变量由系统自动设置,并且是只读的。 (例外情况是 Build.Clean 和 System.Debug。)
在 YAML 管道中,可以引用预定义的变量作为环境变量。 例如,变量 Build.ArtifactStagingDirectory
将成为变量 BUILD_ARTIFACTSTAGINGDIRECTORY
。
对于经典管道,可以在部署任务中使用发布变量来共享常见信息(例如环境名称、资源组等)。
详细了解如何使用变量。
这是一个已弃用的变量,用于修改生成代理清理源的方式。 若要了解如何清理源,请参阅清理代理上的本地存储库。
System.AccessToken
是一个特殊变量,它携带了正在运行的生成所使用的安全令牌。
在 YAML 中,必须使用变量将 System.AccessToken
显式映射到管道中。 可以在步骤或任务级别执行此操作:
steps:
- script: |
echo "Using System.AccessToken to authenticate"
git clone https://$(System.AccessToken)@dev.azure.com/yourorganization/yourproject/_git/yourrepository
displayName: 'Clone repository using System.AccessToken'
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
可以使用生成作业授权范围配置 System.AccessToken
的默认范围。
有关调试管道问题的更详细日志,请定义 System.Debug
并将其设置为 true
。
编辑管道。
选择“变量”。
添加一个名为
System.Debug
、值为true
的新变量。保存新变量。
将 System.Debug
设置为 true
会为所有运行配置详细日志。 还可以使用“启用系统诊断”复选框为单个运行配置详细日志。
此外,还可以将 System.Debug
设置为 true
,作为管道或模板中的变量。
variables:
system.debug: 'true'
当 System.Debug
设置为 true
时,一个名为 Agent.Diagnostic
的额外变量将设置为 true
。 当 Agent.Diagnostic
设置为 true
时,代理会收集更多日志,这些日志可用于排查自托管代理的网络问题。 有关详细信息,请参阅自托管代理的网络诊断。
备注
Agent.Diagnostic
变量可用于 Agent v2.200.0 及更高版本。
有关详细信息,请参阅查看日志以诊断管道问题。
备注
可以将代理变量用作脚本中的环境变量,并在生成任务中用作参数。 不能使用它们来自定义生成号,或者用来应用版本控制标签或标记。
变量 | 说明 |
---|---|
Agent.BuildDirectory | 代理上的本地路径,用于创建给定生成管道的所有文件夹。 此变量的值与 Pipeline.Workspace 相同。 例如:/home/vsts/work/1 。 |
Agent.ContainerMapping | 在运行时从 YAML 中的容器资源名称到其 Docker ID 的映射。 示例如下表所示。 |
Agent.HomeDirectory | 用于安装代理的目录。 其中包含代理软件。 例如:c:\agent 。 |
Agent.Id | 代理的 ID。 |
Agent.JobName | 正在运行的作业的名称。 这通常是“Job”或“__default”,但在多配置情况下,将是配置。 |
Agent.JobStatus | 生成的状态。
AGENT_JOBSTATUS 。 较旧的 agent.jobstatus 可用于向后兼容。 |
Agent.MachineName | 用于安装代理的计算机的名称。 |
Agent.Name | 注册到池的代理的名称。 如果你使用的是自托管代理,则此名称由你指定。 请参阅代理。 |
Agent.OS | 代理主机的操作系统。 有效值是:
|
Agent.OSArchitecture | 代理主机的操作系统处理器体系结构。 有效值是:
|
Agent.TempDirectory | 在每个管道作业后清理的临时文件夹。 .NET Core CLI 任务等任务使用此目录在发布之前保存临时项(如测试结果)。 例如:对于 Ubuntu,该目录为 /home/vsts/work/_temp 。 |
Agent.ToolsDirectory | 节点工具安装程序和使用 Python 版本等任务使用的目录,用于在工具的多个版本之间切换。 这些任务会将工具从此目录添加到 PATH ,以便后续生成步骤可以使用这些工具。了解如何在自托管代理上管理此目录。 |
Agent.WorkFolder | 此代理的工作目录。 例如: c:\agent_work 。注意:不保证此目录可由管道任务写入(例如,映射到容器时) |
Agent.ContainerMapping 的示例:
{
"one_container": {
"id": "bdbb357d73a0bd3550a1a5b778b62a4c88ed2051c7802a0659f1ff6e76910190"
},
"another_container": {
"id": "82652975109ec494876a8ccbb875459c945982952e0a72ad74c91216707162bb"
}
}
在模板中使用未标记为可用的模板中变量时,该变量将不会呈现。 变量不会呈现,因为其值在模板的范围内不可访问。
变量 | 说明 | 是否在模板中可用? |
---|---|---|
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.CronSchedule.DisplayName | 触发管道运行的 cron 计划的 displayName 。 仅当管道运行由 YAML 计划触发器触发时,才会设置此变量。 有关详细信息,请参阅 schedules.cron 定义 - Build.CronSchedule.DisplayName 变量 |
是 |
Build.DefinitionName | 生成管道的名称。 注意:此值可以包含空格或其他无效标签字符。 在这些情况下,标签格式会失败。 |
是 |
Build.DefinitionVersion | 生成管道的版本。 | 是 |
Build.QueuedBy | 请参阅如何设置标识变量?。 注意:此值可以包含空格或其他无效标签字符。 在这些情况下,标签格式会失败。 |
是 |
Build.QueuedById | 请参阅如何设置标识变量?。 | 是 |
Build.Reason | 导致了生成运行的事件。
|
是 |
Build.Repository.Clean | 在源存储库设置中为“清理”选择的值。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
否 |
Build.Repository.LocalPath | 下载源代码文件的代理上的本地路径。 例如:c:\agent_work\1\s 。默认情况下,新的生成管道仅更新已更改的文件。 可以在“存储库”选项卡上修改文件的下载方式。 重要说明:如果仅签出一个 Git 存储库,则此路径是访问代码的确切路径。 如果签出多个存储库,则行为如下(可能与 Build.SourcesDirectory 变量的值不同):
|
否 |
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 | 生成排队等待的触发存储库的分支。 下面是一些示例:
/ ) 将替换为下划线字符 (_ )。注意:在 TFVC 中,如果运行封闭签入生成或手动生成搁置集,则不能以生成号格式使用此变量。 |
是 |
Build.SourceBranchName | 生成排队等待的触发存储库的分支名称。
|
是 |
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 提交上的消息。 PR 生成的 Build.SourceVersion 提交是合并提交(而不是源分支上的提交)。此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 此外,此变量仅在步骤级别可用,在作业或阶段级别不可用(即在作业启动并签出代码之前,不会提取消息)。 注意:此变量在 TFS 2015.4 中可用。 注意:启用“生成过程中的批处理更改”时,Build.SourceVersionMessage 变量不适用于 Bitbucket 存储库中的经典生成管道。 |
否 |
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。 在经典管道中,此变量由生成完成触发器触发。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 如果使用 resources 触发 YAML 管道,则应改用资源变量。 |
否 |
Build.TriggeredBy.DefinitionId | 如果生成是由另一个生成触发的,则此变量设置为触发生成的 DefinitionID。 在经典管道中,此变量由生成完成触发器触发。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 如果使用 resources 触发 YAML 管道,则应改用资源变量。 |
否 |
Build.TriggeredBy.DefinitionName | 如果生成是由另一个生成触发的,则此变量设置为触发生成管道的名称。 在经典管道中,此变量由生成完成触发器触发。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 如果使用 resources 触发 YAML 管道,则应改用资源变量。 |
否 |
Build.TriggeredBy.BuildNumber | 如果生成是由另一个生成触发的,则此变量设置为触发生成的编号。 在经典管道中,此变量由生成完成触发器触发。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 如果使用 resources 触发 YAML 管道,则应改用资源变量。 |
否 |
Build.TriggeredBy.ProjectID | 如果生成是由另一个生成触发的,则此变量设置为包含触发生成的项目的 ID。 在经典管道中,此变量由生成完成触发器触发。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 如果使用 resources 触发 YAML 管道,则应改用资源变量。 |
否 |
Common.TestResultsDirectory | 代理上创建测试结果的本地路径。 例如:c:\agent_work\1\TestResults 。此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
否 |
变量 | 说明 |
---|---|
Pipeline.Workspace | 特定管道的工作区目录。 此变量的值与 Agent.BuildDirectory 相同。 例如,/home/vsts/work/1 。 |
提示
如果使用的是经典发布管道,可以使用经典发布和工件变量来存储和访问整个管道中的数据。
这些变量的范围限定为特定的部署作业,并且仅在作业执行时进行解析。
变量 | 说明 |
---|---|
Environment.Name | 部署作业中用于运行部署步骤并记录部署历史记录的环境的名称。 例如,smarthotel-dev 。 |
Environment.Id | 部署作业中面向的环境的 ID。 例如,10 。 |
Environment.ResourceName | 部署作业中面向的环境中用于运行部署步骤并记录部署历史记录的特定资源的名称。 例如,bookings ,它是已作为资源添加到环境 smarthotel-dev 的 Kubernetes 命名空间。 |
Environment.ResourceId | 部署作业中面向的环境中用于运行部署步骤的特定资源的 ID。 例如,4 。 |
Strategy.Name | 部署策略的名称:canary 、runOnce 或 rolling 。 |
Strategy.CycleName | 部署中的当前周期名称。 选项有 PreIteration 、Iteration 或 PostIteration 。 |
在模板中使用未标记为可用的模板中变量时,该变量将不会呈现。 变量不会呈现,因为其值在模板的范围内不可访问。
变量 | 说明 | 是否在模板中可用? |
---|---|---|
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.OidcRequestUri | 使用 OpenID Connect (OIDC) 生成一个 idToken 用于使用 Entra ID 进行身份验证。 了解详细信息。 |
是 |
System.PhaseAttempt | 首次尝试此阶段时设置为 1,并在每次重试作业时递增。 注意:“阶段”是一个没什么实际意义的概念,它表示作业的设计时间(而作业是阶段的运行时版本)。 我们基本上已从 Azure Pipelines 中移除了“阶段”的概念。 矩阵和多配置作业是“阶段”与“作业”唯一的不同之处。一个阶段可以实例化多个作业,而这些作业只在其输入方面有所不同。 |
否 |
System.PhaseDisplayName | 为阶段指定的可读名称。 | 否 |
System.PhaseName | 作业的基于字符串的标识符,通常用于表示依赖项和访问输出变量。 | 否 |
System.PlanId | 单个管道运行的基于字符串的标识符。 | 否 |
System.PullRequest.IsFork | 如果拉取请求来自存储库的分支,则此变量设置为 True 。否则,设置为 False 。 |
是 |
System.PullRequest.PullRequestId | 导致此生成的拉取请求的 ID。 例如:17 。 (仅当由于受分支策略影响的 Git 拉取请求而运行生成时,才会初始化此变量。) |
否 |
System.PullRequest.PullRequestNumber | 导致此生成的拉取请求的编号。 此变量针对来自 GitHub 的拉取请求进行填充,这些请求具有不同的拉取请求 ID 和拉取请求编号。 仅当拉取请求受分支策略影响时,此变量才在 YAML 管道中可用。 | 否 |
System.PullRequest.targetBranchName | 拉取请求的目标分支的名称。 此变量可以在管道中用于基于拉取请求的目标分支有条件地执行任务或步骤。 例如,你可能需要根据更改合并到的分支触发一组不同的测试或代码分析工具。 | 否 |
System.PullRequest.SourceBranch | 正在拉取请求中查看的分支。 例如:对于 Azure Repos,为 refs/heads/users/raisa/new-feature 。 (仅当由于受分支策略影响的 Git 拉取请求而运行生成时,才会初始化此变量。) 仅当拉取请求受分支策略影响时,此变量才在 YAML 管道中可用。 |
否 |
System.PullRequest.SourceCommitId | 正在拉取请求中查看的提交。 (仅当由于受分支策略影响的 Git 拉取请求而运行生成时,才会初始化此变量。) 仅当拉取请求受分支策略影响时,此变量才在 YAML 管道中可用。 | |
System.PullRequest.SourceRepositoryURI | 包含拉取请求的存储库的 URL。 例如:https://dev.azure.com/ouraccount/_git/OurProject 。 |
否 |
System.PullRequest.TargetBranch | 作为拉取请求目标的分支。 例如:当存储库位于 Azure Repos 中时,为 refs/heads/main ,当存储库位于 GitHub 中时,为 main 。 仅当由于受分支策略影响的 Git 拉取请求而运行生成时,才会初始化此变量。 仅当拉取请求受分支策略影响时,此变量才在 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 。此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
否 |
变量 | 说明 |
---|---|
Checks.StageAttempt | 首次尝试此阶段时设置为 1,并在每次重试阶段时递增。 此变量只能在环境的审批或检查中使用。 例如,可以在调用 REST API 检查中使用 $(Checks.StageAttempt) 。 |
备注
可以将代理变量用作脚本中的环境变量,并在生成任务中用作参数。 不能使用它们来自定义生成号,或者用来应用版本控制标签或标记。
变量 | 说明 |
---|---|
Agent.BuildDirectory | 代理上的本地路径,用于创建给定生成管道的所有文件夹。 此变量的值与 Pipeline.Workspace 相同。 例如:/home/vsts/work/1 。 |
Agent.ContainerMapping | 在运行时从 YAML 中的容器资源名称到其 Docker ID 的映射。 示例如下表所示。 |
Agent.HomeDirectory | 用于安装代理的目录。 其中包含代理软件。 例如:c:\agent 。 |
Agent.Id | 代理的 ID。 |
Agent.JobName | 正在运行的作业的名称。 这通常是“Job”或“__default”,但在多配置情况下,将是配置。 |
Agent.JobStatus | 生成的状态。
AGENT_JOBSTATUS 。 较旧的 agent.jobstatus 可用于向后兼容。 |
Agent.MachineName | 用于安装代理的计算机的名称。 |
Agent.Name | 注册到池的代理的名称。 如果你使用的是自托管代理,则此名称由你指定。 请参阅代理。 |
Agent.OS | 代理主机的操作系统。 有效值是:
|
Agent.OSArchitecture | 代理主机的操作系统处理器体系结构。 有效值是:
|
Agent.TempDirectory | 在每个管道作业后清理的临时文件夹。 .NET Core CLI 任务等任务使用此目录在发布之前保存临时项(如测试结果)。 例如:对于 Ubuntu,该目录为 /home/vsts/work/_temp 。 |
Agent.ToolsDirectory | 节点工具安装程序和使用 Python 版本等任务使用的目录,用于在工具的多个版本之间切换。 这些任务会将工具从此目录添加到 PATH ,以便后续生成步骤可以使用这些工具。了解如何在自托管代理上管理此目录。 |
Agent.WorkFolder | 此代理的工作目录。 例如:c:\agent_work 。注意:不保证此目录可由管道任务写入(例如,映射到容器时)。 |
Agent.ContainerMapping 的示例:
{
"one_container": {
"id": "bdbb357d73a0bd3550a1a5b778b62a4c88ed2051c7802a0659f1ff6e76910190"
},
"another_container": {
"id": "82652975109ec494876a8ccbb875459c945982952e0a72ad74c91216707162bb"
}
}
在模板中使用未标记为可用的模板中变量时,该变量将不会呈现。 变量不会呈现,因为其值在模板的范围内不可访问。
变量 | 说明 | 是否在模板中可用? |
---|---|---|
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.CronSchedule.DisplayName | 触发管道运行的 cron 计划的 displayName 。 仅当管道运行由 YAML 计划触发器触发时,才会设置此变量。 有关详细信息,请参阅 schedules.cron 定义 - Build.CronSchedule.DisplayName 变量。 此变量在 Azure DevOps Server 2022.1 及更高版本中可用。 |
是 |
Build.DefinitionName | 生成管道的名称。 注意:此值可以包含空格或其他无效标签字符。 在这些情况下,标签格式会失败。 |
是 |
Build.DefinitionVersion | 生成管道的版本。 | 是 |
Build.QueuedBy | 请参阅如何设置标识变量?。 注意:此值可以包含空格或其他无效标签字符。 在这些情况下,标签格式会失败。 |
是 |
Build.QueuedById | 请参阅如何设置标识变量?。 | 是 |
Build.Reason | 导致了生成运行的事件。
|
是 |
Build.Repository.Clean | 在源存储库设置中为“清理”选择的值。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
否 |
Build.Repository.LocalPath | 下载源代码文件的代理上的本地路径。 例如:c:\agent_work\1\s 。 默认情况下,新的生成管道仅更新已更改的文件。 可以在“存储库”选项卡上修改文件的下载方式。 重要说明:如果仅签出一个 Git 存储库,则此路径是访问代码的确切路径。 如果签出多个存储库,则行为如下(可能与 Build.SourcesDirectory 变量的值不同):
|
否 |
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 | 生成排队等待的触发存储库的分支。 下面是一些示例:
/ ) 将替换为下划线字符 (_ )。注意:在 TFVC 中,如果运行封闭签入生成或手动生成搁置集,则不能以生成号格式使用此变量。 |
是 |
Build.SourceBranchName | 生成排队等待的触发存储库的分支名称。
|
是 |
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 提交上的消息。 PR 生成的 Build.SourceVersion 提交是合并提交(而不是源分支上的提交)。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 此外,此变量仅在步骤级别可用,在作业或阶段级别不可用(即在作业启动并签出代码之前,不会提取消息)。 注意:此变量在 TFS 2015.4 中可用。 注意:启用“生成过程中的批处理更改”时,Build.SourceVersionMessage 变量不适用于 Bitbucket 存储库中的经典生成管道。 |
否 |
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。 在经典管道中,此变量由生成完成触发器触发。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 如果使用 resources 触发 YAML 管道,则应改用资源变量。 |
否 |
Build.TriggeredBy.DefinitionId | 如果生成是由另一个生成触发的,则此变量设置为触发生成的 DefinitionID。 在经典管道中,此变量由生成完成触发器触发。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 如果使用 resources 触发 YAML 管道,则应改用资源变量。 |
否 |
Build.TriggeredBy.DefinitionName | 如果生成是由另一个生成触发的,则此变量设置为触发生成管道的名称。 在经典管道中,此变量由生成完成触发器触发。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 如果使用 resources 触发 YAML 管道,则应改用资源变量。 |
否 |
Build.TriggeredBy.BuildNumber | 如果生成是由另一个生成触发的,则此变量设置为触发生成的编号。 在经典管道中,此变量由生成完成触发器触发。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 如果使用 resources 触发 YAML 管道,则应改用资源变量。 |
否 |
Build.TriggeredBy.ProjectID | 如果生成是由另一个生成触发的,则此变量设置为包含触发生成的项目的 ID。 在经典管道中,此变量由生成完成触发器触发。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 如果使用 resources 触发 YAML 管道,则应改用资源变量。 |
否 |
Common.TestResultsDirectory | 代理上创建测试结果的本地路径。 例如:c:\agent_work\1\TestResults 。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
否 |
变量 | 说明 |
---|---|
Pipeline.Workspace | 特定管道的工作区目录。 此变量的值与 Agent.BuildDirectory 相同。 例如,/home/vsts/work/1 。 |
提示
如果使用的是经典发布管道,可以使用经典发布和工件变量来存储和访问整个管道中的数据。
这些变量的范围限定为特定的部署作业,并且仅在作业执行时进行解析。
变量 | 说明 |
---|---|
Environment.Name | 部署作业中用于运行部署步骤并记录部署历史记录的环境的名称。 例如,smarthotel-dev 。 |
Environment.Id | 部署作业中面向的环境的 ID。 例如,10 。 |
Environment.ResourceName | 部署作业中面向的环境中用于运行部署步骤并记录部署历史记录的特定资源的名称。 例如,bookings ,它是已作为资源添加到环境 smarthotel-dev 的 Kubernetes 命名空间。 |
Environment.ResourceId | 部署作业中面向的环境中用于运行部署步骤的特定资源的 ID。 例如,4 。 |
Strategy.Name | 部署策略的名称:canary 、runOnce 或 rolling 。 |
Strategy.CycleName | 部署中的当前周期名称。 选项有 PreIteration 、Iteration 或 PostIteration 。 |
在模板中使用未标记为可用的模板中变量时,该变量将不会呈现。 变量不会呈现,因为其值在模板的范围内不可访问。
变量 | 说明 | 是否在模板中可用? |
---|---|---|
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 拉取请求而运行生成时,才会初始化此变量。) |
否 |
System.PullRequest.PullRequestNumber | 导致此生成的拉取请求的编号。 此变量针对来自 GitHub 的拉取请求进行填充,这些请求具有不同的拉取请求 ID 和拉取请求编号。 仅当拉取请求受分支策略影响时,此变量才在 YAML 管道中可用。 | 否 |
System.PullRequest.targetBranchName | 拉取请求的目标分支的名称。 此变量可以在管道中用于基于拉取请求的目标分支有条件地执行任务或步骤。 例如,你可能需要根据更改合并到的分支触发一组不同的测试或代码分析工具。 | 否 |
System.PullRequest.SourceBranch | 正在拉取请求中查看的分支。 例如:对于 Azure Repos,为 refs/heads/users/raisa/new-feature 。 (仅当由于受分支策略影响的 Git 拉取请求而运行生成时,才会初始化此变量。) 仅当拉取请求受分支策略影响时,此变量才在 YAML 管道中可用。 |
否 |
System.PullRequest.SourceRepositoryURI | 包含拉取请求的存储库的 URL。 例如:https://dev.azure.com/ouraccount/_git/OurProject 。 |
否 |
System.PullRequest.TargetBranch | 作为拉取请求目标的分支。 例如:当存储库位于 Azure Repos 中时,为 refs/heads/main ,当存储库位于 GitHub 中时,为 main 。 仅当由于受分支策略影响的 Git 拉取请求而运行生成时,才会初始化此变量。 仅当拉取请求受分支策略影响时,此变量才在 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 。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
否 |
变量 | 说明 |
---|---|
Checks.StageAttempt | 首次尝试此阶段时设置为 1,并在每次重试阶段时递增。 此变量只能在环境的审批或检查中使用。 例如,可以在调用 REST API 检查中使用 $(Checks.StageAttempt) 。 |
备注
可以将代理变量用作脚本中的环境变量,并在生成任务中用作参数。 不能使用它们来自定义生成号,或者用来应用版本控制标签或标记。
变量 | 说明 |
---|---|
Agent.BuildDirectory | 代理上的本地路径,用于创建给定生成管道的所有文件夹。 此变量的值与 Pipeline.Workspace 相同。 例如:/home/vsts/work/1 。 |
Agent.HomeDirectory | 用于安装代理的目录。 其中包含代理软件。 例如:c:\agent 。 |
Agent.Id | 代理的 ID。 |
Agent.JobName | 正在运行的作业的名称。 这通常是“Job”或“__default”,但在多配置情况下,将是配置。 |
Agent.JobStatus | 生成的状态。
AGENT_JOBSTATUS 。 较旧的 agent.jobstatus 可用于向后兼容。 |
Agent.MachineName | 用于安装代理的计算机的名称。 |
Agent.Name | 注册到池的代理的名称。 如果你使用的是自托管代理,则此名称由你设置。 请参阅代理。 |
Agent.OS | 代理主机的操作系统。 有效值是:
|
Agent.OSArchitecture | 代理主机的操作系统处理器体系结构。 有效值是:
|
Agent.TempDirectory | 在每个管道作业后清理的临时文件夹。 .NET Core CLI 任务等任务使用此目录在发布之前保存临时项(如测试结果)。 例如:对于 Ubuntu,该目录为 /home/vsts/work/_temp 。 |
Agent.ToolsDirectory | 节点工具安装程序和使用 Python 版本等任务使用的目录,用于在工具的多个版本之间切换。 这些任务会将工具从此目录添加到 PATH ,以便后续生成步骤可以使用这些工具。 了解如何在自托管代理上管理此目录。 |
Agent.WorkFolder | 此代理的工作目录。 例如:c:\agent_work 。 注意:不保证此目录可由管道任务写入(例如,映射到容器时) |
在模板中使用未标记为可用的模板中变量时,该变量将不会呈现。 变量不会呈现,因为其值在模板的范围内不可访问。
变量 | 说明 | 是否在模板中可用? |
---|---|---|
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 | 导致了生成运行的事件。
|
是 |
Build.Repository.Clean | 在源存储库设置中为“清理”选择的值。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
否 |
Build.Repository.LocalPath | 下载源代码文件的代理上的本地路径。 例如:c:\agent_work\1\s 。 默认情况下,新的生成管道仅更新已更改的文件。 可以在“存储库”选项卡上修改文件的下载方式。 重要说明:如果仅签出一个 Git 存储库,此路径将是访问代码的确切路径。 如果签出多个存储库,则行为如下(可能与 Build.SourcesDirectory 变量的值不同):
|
否 |
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 | 生成排队等待的触发存储库的分支。 下面是一些示例:
/ ) 将替换为下划线字符 (_ )。 注意:在 TFVC 中,如果运行封闭签入生成或手动生成搁置集,则不能以生成号格式使用此变量。 |
是 |
Build.SourceBranchName | 生成排队等待的触发存储库的分支名称。
|
是 |
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.SourceVersionMessage 变量不适用于 Bitbucket 存储库中的经典生成管道。 |
否 |
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 。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
否 |
变量 | 说明 |
---|---|
Pipeline.Workspace | 特定管道的工作区目录。 此变量的值与 Agent.BuildDirectory 相同。 例如 /home/vsts/work/1 。 |
这些变量的范围限定为特定的部署作业,并且仅在作业执行时进行解析。
变量 | 说明 |
---|---|
Environment.Name | 部署作业中用于运行部署步骤并记录部署历史记录的环境的名称。 例如,smarthotel-dev 。 |
Environment.Id | 部署作业中面向的环境的 ID。 例如,10 。 |
Environment.ResourceName | 部署作业中面向的环境中用于运行部署步骤并记录部署历史记录的特定资源的名称。 例如,bookings ,它是已作为资源添加到环境 smarthotel-dev 的 Kubernetes 命名空间。 |
Environment.ResourceId | 部署作业中面向的环境中用于运行部署步骤的特定资源的 ID。 例如 4 。 |
在模板中使用未标记为可用的模板中变量时,该变量将不会呈现。 变量不会呈现,因为其值在模板的范围内不可访问。
变量 | 说明 | 是否在模板中可用? |
---|---|---|
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 拉取请求而运行生成时,才会初始化此变量。) |
否 |
System.PullRequest.PullRequestNumber | 导致此生成的拉取请求的编号。 此变量针对来自 GitHub 的拉取请求进行填充,这些请求具有不同的拉取请求 ID 和拉取请求编号。 仅当拉取请求受分支策略影响时,此变量才在 YAML 管道中可用。 | 否 |
System.PullRequest.targetBranchName | 拉取请求的目标分支的名称。 此变量可以在管道中用于基于拉取请求的目标分支有条件地执行任务或步骤。 例如,你可能需要根据更改合并到的分支触发一组不同的测试或代码分析工具。 | 否 |
System.PullRequest.SourceBranch | 正在拉取请求中查看的分支。 例如:refs/heads/users/raisa/new-feature 。 (仅当由于受分支策略影响的 Git 拉取请求而运行生成时,才会初始化此变量。) 仅当拉取请求受分支策略影响时,此变量才在 YAML 管道中可用。 |
否 |
System.PullRequest.SourceCommitId | 正在拉取请求中查看的提交。 (仅当由于受分支策略影响的 Git 拉取请求而运行生成时,才会初始化此变量。) 仅当拉取请求受分支策略影响时,此变量才在 YAML 管道中可用。 | |
System.PullRequest.SourceRepositoryURI | 包含拉取请求的存储库的 URL。 例如:https://dev.azure.com/ouraccount/_git/OurProject 。 |
否 |
System.PullRequest.TargetBranch | 作为拉取请求目标的分支。 例如:当存储库位于 Azure Repos 中时,为 refs/heads/main ,当存储库位于 GitHub 中时,为 main 。 仅当由于受分支策略影响的 Git 拉取请求而运行生成时,才会初始化此变量。 仅当拉取请求受分支策略影响时,此变量才在 YAML 管道中可用。 |
否 |
System.TeamFoundationCollectionUri | Team Foundation 集合的 URI。 例如:https://dev.azure.com/fabrikamfiber/ 。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
是 |
System.TeamProject | 包含此生成的项目的名称。 | 是 |
System.TeamProjectId | 此生成所属项目的 ID。 | 是 |
TF_BUILD | 如果脚本由生成任务运行,则设置为 True 。 此变量是代理范围的,可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
否 |
备注
可以将代理变量用作脚本中的环境变量,并在生成任务中用作参数。 不能使用它们来自定义生成号,或者用来应用版本控制标签或标记。
变量 | 说明 |
---|---|
Agent.BuildDirectory | 代理上的本地路径,用于创建给定生成管道的所有文件夹。 例如:c:\agent_work\1 。 |
Agent.HomeDirectory | 用于安装代理的目录。 其中包含代理软件。 例如:c:\agent 。 |
Agent.Id | 代理的 ID。 |
Agent.JobName | 正在运行的作业的名称。 这通常是“Job”或“__default”,但在多配置情况下,将是配置。 |
Agent.JobStatus | 生成的状态。
AGENT_JOBSTATUS 。 较旧的 agent.jobstatus 可用于向后兼容。 |
Agent.MachineName | 用于安装代理的计算机的名称。 |
Agent.Name | 注册到池的代理的名称。 如果你使用的是自托管代理,则此名称由你设置。 请参阅代理。 |
Agent.OS | 代理主机的操作系统。 有效值是:
|
Agent.OSArchitecture | 代理主机的操作系统处理器体系结构。 有效值是:
|
Agent.TempDirectory | 在每个管道作业后清理的临时文件夹。 .NET Core CLI 任务等任务使用此目录在发布之前保存临时项(如测试结果)。 |
Agent.ToolsDirectory | 节点工具安装程序和使用 Python 版本等任务使用的目录,用于在工具的多个版本之间切换。 这些任务会将工具从此目录添加到 PATH ,以便后续生成步骤可以使用这些工具。 了解如何在自托管代理上管理此目录。 |
Agent.WorkFolder | 此代理的工作目录。 例如:c:\agent_work 。 不保证此目录可由管道任务写入(例如,映射到容器时)。 |
变量 | 说明 |
---|---|
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 | 导致了生成运行的事件。
|
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 | 生成排队等待的分支。 下面是一些示例:
/ ) 将替换为下划线字符 (_ )。 注意:在 TFVC 中,如果运行封闭签入生成或手动生成搁置集,则不能以生成号格式使用此变量。 |
Build.SourceBranchName | 生成排队等待的分支的名称。
|
Build.SourcesDirectory | 下载源代码文件的代理上的本地路径。 例如:c:\agent_work\1\s 。默认情况下,新的生成管道仅更新已更改的文件。 可以在“存储库”选项卡上修改文件的下载方式。 此变量是代理范围的。 它可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 此变量与 Build.Repository.LocalPath 同义。 |
Build.SourceVersion | 此生成中包含的最新版本控制更改。 此变量是代理范围的。 它可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
Build.SourceVersionMessage | 提交或变更集的注释。 我们将消息截断到第一行或 200 个字符,以较短者为准。 此变量是代理范围的。 它可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 注意:此变量在 TFS 2015.4 中可用。 注意:启用“生成过程中的批处理更改”时,Build.SourceVersionMessage 变量不适用于 Bitbucket 存储库中的经典生成管道。 |
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 。 此变量是代理范围的。 它可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
变量 | 说明 |
---|---|
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 拉取请求而运行生成时,才会初始化此变量。) |
System.PullRequest.PullRequestNumber | 导致此生成的拉取请求的编号。 此变量针对来自 GitHub 的拉取请求进行填充,这些请求具有不同的拉取请求 ID 和拉取请求编号。 |
System.PullRequest.SourceBranch | 正在拉取请求中查看的分支。 例如:refs/heads/users/raisa/new-feature 。 (仅当由于受分支策略影响的 Git 拉取请求而运行生成时,才会初始化此变量。) |
System.PullRequest.SourceCommitId | 正在拉取请求中查看的提交。 (仅当由于受分支策略影响的 Git 拉取请求而运行生成时,才会初始化此变量。) |
System.PullRequest.SourceRepositoryURI | 包含拉取请求的存储库的 URL。 例如:https://dev.azure.com/ouraccount/_git/OurProject 。 (仅当由于受分支策略影响的 Azure Repos Git 拉取请求而运行生成时,才会初始化此变量。它未针对 GitHub PR 进行初始化。) |
System.PullRequest.TargetBranch | 作为拉取请求目标的分支。 例如:refs/heads/main 。 仅当由于受分支策略影响的 Git 拉取请求而运行生成时,才会初始化此变量。 |
System.TeamFoundationCollectionUri | Team Foundation 集合的 URI。 例如:https://dev.azure.com/fabrikamfiber/ 。 此变量是代理范围的。 它可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
System.TeamProject | 包含此生成的项目的名称。 |
System.TeamProjectId | 此生成所属项目的 ID。 |
TF_BUILD | 如果脚本由生成任务运行,则设置为 True 。 此变量是代理范围的。 它可用作脚本中的环境变量和生成任务中的参数,但不能用作生成号的一部分或版本控制标记。 |
值取决于导致生成的原因,并且是 Azure Repos 存储库所特有的。
如果生成通过以下方式触发... | Build.QueuedBy 和 Build.QueuedById 值基于... | Build.RequestedFor 和 Build.RequestedForId 值基于... |
---|---|---|
在 Git 中,由持续集成 (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 |
由于单击了“队列生成”按钮而触发 | 你 | 你 |