使用預先定義的變數

Azure DevOps Services |Azure DevOps Server 2022 - 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 識別碼的對應。

例如:

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

Agent.HomeDirectory 代理程式的安裝所在的目錄。 這包含代理程式軟體。 例如:c:\agent
Agent.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 已完成組建之記錄的識別碼。
Build.BuildNumber 已完成組建的名稱,也稱為執行編號。 您可以指定此值 中包含的內容

此變數的一般用法是讓它成為標籤格式的一部分,您可以在存放 索引標籤上指定。

注意:此值可以包含空白字元或其他不正確標籤字元。 在這些情況下, 標籤格式 將會失敗。



此變數是代理程式範圍,可以做為腳本中的環境變數,也可以當做建置工作中的參數使用,但不能做為組建編號或版本控制標記的一部分。

Build.BuildUri 組建的 URI。 例如:vstfs:///Build/Build/1430

此變數是代理程式範圍,可以做為腳本中的環境變數,也可以當做建置工作中的參數使用,但不能做為組建編號或版本控制標記的一部分。
Build.BinariesDirectory 代理程式上的本機路徑,您可以做為已編譯二進位檔的輸出檔案夾。

根據預設,新組建管線不會設定為清除此目錄。 您可以定義組建,以在 [存放庫] 索引卷 上加以清除。

例如:c:\agent_work\1\b

此變數是代理程式範圍,可以做為腳本中的環境變數,也可以當做建置工作中的參數使用,但不能做為組建編號或版本控制標記的一部分。
Build.ContainerId 成品容器的識別碼。 當您在管線中上傳成品時,它會新增至該特定成品專屬的容器。
Build.DefinitionName 組建管線的名稱。

注意:此值可以包含空白字元或其他不正確標籤字元。 在這些情況下, 標籤格式 將會失敗。

Build.DefinitionVersion 組建管線的版本。 Yes
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 請參閱「如何設定身分識別變數?」。

注意:此值可以包含空白字元或其他不正確標籤字元。 在這些情況下, 標籤格式 將會失敗。

Yes
Build.RequestedForEmail 請參閱「如何設定身分識別變數?」。 Yes
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 中,如果您正在執行閘道簽入組建或手動建置擱置集,則無法以組建編號格式使用此變數。
Yes
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 中,如果您正在執行閘道簽入組建或手動建置擱置集,則無法以組建編號格式使用此變數。
Yes
Build.SourcesDirectory

下載原始程式碼檔案之代理程式的本機路徑。 例如:c:\agent_work\1\s

根據預設,新的組建管線只會更新已變更的檔案。

重要事項:如果您只取出一個 Git 存放庫,此路徑將是程式碼的確切路徑。 如果您取出多個存放庫,它會還原為預設值,也就是 $(Pipeline.Workspace)/s ,即使自我 (主要) 存放庫簽出到不同于其多簽出預設路徑的自訂路徑 $(Pipeline.Workspace)/s/<RepoName> , (在此方面,變數與 Build.Repository.LocalPath 變數的行為不同) 。

此變數是代理程式範圍,而且可作為腳本中的環境變數和建置工作中的參數,但不能當做組建編號或版本控制標記的一部分使用。

Build.SourceVersion 此組建中包含的觸發存放庫最新版本控制變更。 此變數是代理程式範圍,而且可作為腳本中的環境變數和建置工作中的參數,但不能當做組建編號或版本控制標記的一部分使用。 Yes
Build.SourceVersionMessage 觸發存放庫之認可或變更集的批註。 我們會將訊息截斷為第一行或 200 個字元,以較短為准。

Build.SourceVersionMessage對應至認可時 Build.SourceVersion 訊息。 Build.SourceVersionPR 組建的認可是合併認可 (來源分支上的認可) 。

此變數是代理程式範圍,而且可作為腳本中的環境變數和建置工作中的參數,但不能當做組建編號或版本控制標記的一部分使用。 此外,這個變數僅適用于步驟層級,而且在作業或階段層級中都無法使用, (亦即,在工作啟動並簽出程式碼) 之前,不會擷取訊息。

注意: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。 在傳統管線中,此變數是由建置完成觸發程式觸發。

此變數是代理程式範圍,而且可作為腳本中的環境變數和建置工作中的參數,但不能當做組建編號或版本控制標記的一部分使用。

如果您使用 觸發 YAML 管線 resources ,您應該改用 資源變數
Build.TriggeredBy.DefinitionId 如果組建 是由另一個組建觸發,則此變數會設定為觸發組建的 DefinitionID。 在傳統管線中,此變數是由建置完成觸發程式觸發。

此變數是代理程式範圍,而且可作為腳本中的環境變數和建置工作中的參數,但不能當做組建編號或版本控制標記的一部分使用。

如果您使用 觸發 YAML 管線 resources ,您應該改用 資源變數
Build.TriggeredBy.DefinitionName 如果組建 是由另一個組建觸發,則此變數會設定為觸發建置管線的名稱。 在傳統管線中,此變數是由建置完成觸發程式觸發。

此變數是代理程式範圍,而且可作為腳本中的環境變數和建置工作中的參數,但不能當做組建編號或版本控制標記的一部分使用。

如果您使用 觸發 YAML 管線 resources ,您應該改用 資源變數
Build.TriggeredBy.BuildNumber 如果組建 是由另一個組建觸發,則此變數會設定為觸發組建的數目。 在傳統管線中,此變數是由建置完成觸發程式觸發。

此變數是代理程式範圍,而且可作為腳本中的環境變數和建置工作中的參數,但不能當做組建編號或版本控制標記的一部分使用。

如果您使用 觸發 YAML 管線 resources ,您應該改用 資源變數
Build.TriggeredBy.ProjectID 如果組建 是由另一個組建觸發,則此變數會設定為包含觸發組建的專案識別碼。 在傳統管線中,此變數是由建置完成觸發程式觸發。

此變數是代理程式範圍,而且可作為腳本中的環境變數和建置工作中的參數,但不能當做組建編號或版本控制標記的一部分使用。

如果您使用 觸發 YAML 管線 resources ,您應該改用 資源變數
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 部署作業中以為目標的環境識別碼。 例如: 10
Environment.ResourceName 以部署作業為目標之環境內的特定資源名稱,以執行部署步驟並記錄部署歷程記錄。 例如, bookings 這是已新增為資源至環境的 smarthotel-dev Kubernetes 命名空間。
Environment.ResourceId 以部署作業為目標之環境內特定資源的識別碼,以執行部署步驟。 例如: 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 組建管線的識別碼。
System.HostType build如果管線是組建,請將 設定為 。 針對發行,這些值適用于 deployment 部署群組作業、 gates 評估閘道期間,以及其他 release (Agent 和無代理程式) 作業。 Yes
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 Yes
System.PullRequest.PullRequestId 造成此組建之提取要求的識別碼。 例如:17。 (只有當組建因為 受分支原則影響的 Git PR 而執行時,才會初始化此變數) 。
System.PullRequest.PullRequestNumber 造成此組建的提取要求數目。 此變數會填入 GitHub 的提取要求,其提取要求識別碼和提取要求號碼不同。 只有在 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/

此變數是代理程式範圍,而且可作為腳本中的環境變數和建置工作中的參數,但不能當做組建編號或版本控制標記的一部分使用。
Yes
System.TeamProject 包含此組建的專案名稱。
System.TeamProjectId 此組建所屬專案的識別碼。
System.TimelineId 單一管線執行之執行詳細資料和記錄的字串型識別碼。
TF_BUILD 如果腳本正由建置工作執行,請設定為 True

此變數是代理程式範圍,而且可作為腳本中的環境變數和建置工作中的參數,但不能當做組建編號或版本控制標記的一部分使用。

檢查變數 (DevOps Services)

變數描述
Checks.StageAttempt 在第一次嘗試此階段時設定為 1,並在每次重試階段時遞增。

此變數只能在 核准或檢查 環境內使用。 例如,您可以在叫用 $(Checks.StageAttempt)REST API 檢查中使用 。

Add the stage attempt as a parameter.

代理程式變數 (DevOps Server 2020)

注意

您可以使用代理程式變數作為腳本中的環境變數,以及作為建置工作中的參數。 您無法使用它們來自訂群組建編號,或套用版本控制標籤或標籤。

變數描述
Agent.BuildDirectory

建立指定組建管線之所有資料夾之代理程式的本機路徑。 此變數的值與 Pipeline.Workspace 相同。

例如:/home/vsts/work/1

Agent.HomeDirectory 代理程式安裝所在的目錄。 這包括代理程式軟體。 例如:c:\agent
Agent.Id 代理程式的識別碼。
Agent.JobName 執行中作業的名稱。 這通常是「作業」或「__default」,但在多重設定案例中,將會是設定。
Agent.JobStatus 組建的狀態。
  • Canceled
  • Failed
  • Succeeded
  • SucceededWithIssues (部分成功)

環境變數應該參考為 AGENT_JOBSTATUS 。 較舊的 agent.jobstatus 版本可用於回溯相容性。

Agent.MachineName 安裝代理程式的電腦名稱稱。
Agent.Name

向集區註冊的代理程式名稱。

如果您使用自我裝載代理程式,則會由您指定此名稱。 請參閱 代理程式

Agent.OS 代理程式主機的作業系統。 有效值為:
  • Windows_NT
  • 達爾文
  • 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 已完成組建之記錄的識別碼。
Build.BuildNumber 已完成組建的名稱,也稱為執行編號。 您可以指定此值 中包含的內容

此變數的一般用法是讓它成為標籤格式的一部分,您可以在存放 索引標籤上指定。

注意:此值可以包含空白字元或其他不正確標籤字元。 在這些情況下, 標籤格式 將會失敗。



此變數是代理程式範圍,可以做為腳本中的環境變數,也可以當做建置工作中的參數使用,但不能做為組建編號或版本控制標記的一部分。

Build.BuildUri 組建的 URI。 例如:vstfs:///Build/Build/1430

此變數是代理程式範圍,可以做為腳本中的環境變數,也可以當做建置工作中的參數使用,但不能做為組建編號或版本控制標記的一部分。
Build.BinariesDirectory 代理程式上的本機路徑,您可以做為已編譯二進位檔的輸出檔案夾。

根據預設,新組建管線不會設定為清除此目錄。 您可以定義組建,以在 [存放庫] 索引卷 上加以清除。

例如:c:\agent_work\1\b

此變數是代理程式範圍,可以做為腳本中的環境變數,也可以當做建置工作中的參數使用,但不能做為組建編號或版本控制標記的一部分。
Build.ContainerId 成品容器的識別碼。 當您在管線中上傳成品時,它會新增至該特定成品專屬的容器。
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 請參閱「如何設定身分識別變數?」。

注意:此值可以包含空白字元或其他不正確標籤字元。 在這些情況下, 標籤格式 將會失敗。

Yes
Build.RequestedForEmail 請參閱「如何設定身分識別變數?」。 Yes
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 中,如果您執行閘道簽入組建或手動建置擱置組,則無法以組建編號格式使用此變數。
Yes
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 此組建中包含的觸發存放庫最新版本控制變更。 此變數是代理程式範圍,可以做為腳本中的環境變數,也可以當做建置工作中的參數使用,但不能做為組建編號或版本控制標記的一部分。 Yes
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 如果建置 是由另一個組建觸發,則此變數會設定為包含觸發組建的專案識別碼。 在傳統管線中,此變數是由建置完成觸發程式觸發。

此變數是代理程式範圍,可以做為腳本中的環境變數,也可以當做建置工作中的參數使用,但不能做為組建編號或版本控制標記的一部分。
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 部署作業中目標環境識別碼。 例如: 10
Environment.ResourceName 部署作業中目標環境內特定資源的名稱,以執行部署步驟並記錄部署歷程記錄。 例如, bookings 這是已新增為資源至環境的 smarthotel-dev Kubernetes 命名空間。
Environment.ResourceId 以部署作業為目標之環境內特定資源的識別碼,以執行部署步驟。 例如: 4

系統變數 (DevOps Server 2020)

變數描述可在範本中使用嗎?
System.AccessToken 使用 OAuth 權杖來存取 REST API

從 YAML 腳本使用 System.AccessToken

此變數是代理程式範圍,可以做為腳本中的環境變數,也可以當做建置工作中的參數使用,但不能做為組建編號或版本控制標記的一部分。
Yes
System.CollectionId TFS 集合或 Azure DevOps 組織的 GUID
System.CollectionUri 字串 Team Foundation Server 集合 URI。
System.DefaultWorkingDirectory

下載原始程式碼檔案之代理程式的本機路徑。 例如:c:\agent_work\1\s

根據預設,新的組建管線只會更新已變更的檔案。 您可以修改 [存放庫] 索引卷 上下載檔案的方式。

此變數為代理程式範圍。 它可以當做腳本中的環境變數和建置工作中的參數,但不能當做組建編號的一部分或版本控制標籤使用。

System.DefinitionId 組建管線的識別碼。 Yes
System.HostType build如果管線是組建,請將 設定為 。 針對發行,這些值適用于 deployment 部署群組作業、 gates 評估閘道期間,以及其他 release (Agent 和無代理程式) 作業。
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 造成此組建之提取要求的識別碼。 例如:17。 (只有在建置因為 受分支原則影響的 Git PR 而執行時,才會初始化此變數) 。
System.PullRequest.PullRequestNumber 造成此組建的提取要求數目。 此變數會填入 GitHub 的提取要求,其具有不同的提取要求識別碼和提取要求號碼。 只有在 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/

此變數是代理程式範圍,可以做為腳本中的環境變數,也可以當做建置工作中的參數使用,但不能做為組建編號或版本控制標記的一部分。
Yes
System.TeamProject 包含此組建的專案名稱。 Yes
System.TeamProjectId 此組建所屬專案的識別碼。 Yes
TF_BUILD True如果腳本正在由建置工作執行,請將 設定為 。

此變數是代理程式範圍,可以做為腳本中的環境變數,也可以當做建置工作中的參數使用,但不能做為組建編號或版本控制標記的一部分。

代理程式變數 (DevOps Server 2019)

注意

您可以使用代理程式變數作為腳本中的環境變數,以及作為建置工作中的參數。 您無法使用它們來自訂群組建編號,或套用版本控制標籤或標籤。

變數描述
Agent.BuildDirectory

代理程式上建立指定組建管線之所有資料夾的本機路徑。

例如:c:\agent_work\1

Agent.HomeDirectory 代理程式的安裝所在的目錄。 這包含代理程式軟體。 例如:c:\agent
Agent.Id 代理程式的識別碼。
Agent.JobName 執行中作業的名稱。 這通常是「作業」或「__default」,但在多重設定案例中,將會是組態。
Agent.JobStatus 組建的狀態。
  • Canceled
  • Failed
  • Succeeded
  • SucceededWithIssues (部分成功)

環境變數應該參考為 AGENT_JOBSTATUS 。 較舊的 agent.jobstatus 版本可供回溯相容性使用。

Agent.MachineName 安裝代理程式的電腦名稱稱。
Agent.Name

向集區註冊的代理程式名稱。

如果您使用自我裝載代理程式,則此名稱是由您指定。 請參閱 代理程式

Agent.OS 代理程式主機的作業系統。 有效值為:
  • Windows_NT
  • 達爾文
  • 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 已完成組建之記錄的識別碼。
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持續整合 (CI) 由 Git 推送或 TFVC 簽入觸發,並已選取 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 如果建置 是由另一個組建觸發,則此變數會設定為包含觸發組建的專案識別碼。

此變數為代理程式範圍。 它可以當做腳本中的環境變數和建置工作中的參數,但不能當做組建編號的一部分或版本控制標籤使用。
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 組建管線的識別碼。
System.HostType build如果管線是組建,請將 設定為 。 針對發行,這些值適用于 deployment 部署群組作業和 release Agent 作業。
System.PullRequest.IsFork 如果提取要求來自存放庫的分支,此變數會設定為 True 。 否則,它會設定為 False
System.PullRequest.PullRequestId 造成此組建之提取要求的識別碼。 例如:17。 (只有當組建因為 受分支原則影響的 Git PR而執行時,才會初始化此變數。)
System.PullRequest.PullRequestNumber 造成此組建的提取要求數目。 此變數會填入 GitHub 的提取要求,其提取要求識別碼和提取要求號碼不同。
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 PR.) 初始化
System.PullRequest.TargetBranch 作為提取要求目標的分支。 例如:refs/heads/main。 只有當組建因為 受分支原則影響的 Git PR而執行時,才會初始化此變數。
System.TeamFoundationCollectionUri 小組基礎集合的 URI。 例如:https://dev.azure.com/fabrikamfiber/

此變數是代理程式範圍。 它可以當做腳本中的環境變數和建置工作中的參數使用,但不能當做組建編號或版本控制標記的一部分。
System.TeamProject 包含此組建的專案名稱。
System.TeamProjectId 此組建所屬專案的識別碼。
TF_BUILD 如果腳本正由建置工作執行,請設定為 True

此變數是代理程式範圍。 它可以當做腳本中的環境變數和建置工作中的參數使用,但不能當做組建編號或版本控制標記的一部分。

TFS 2018 (代理程式變數)

注意

您可以使用代理程式變數作為腳本中的環境變數,以及作為建置工作中的參數。 您無法使用它們來自訂群組建編號,或套用版本控制標籤或標籤。

變數描述
Agent.BuildDirectory

建立指定組建管線之所有資料夾之代理程式的本機路徑。

例如:c:\agent_work\1

Agent.HomeDirectory 代理程式安裝所在的目錄。 這包括代理程式軟體。 例如:c:\agent
Agent.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 已完成組建之記錄的識別碼。
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 組建管線的識別碼。
System.HostType build如果管線是組建,或 release 管線是發行,則設定為 。
System.PullRequest.IsFork 如果提取要求來自存放庫的分支,此變數會設定為 True 。 否則,它會設定為 False 。 可在 TFS 2018.2中使用。
System.PullRequest.PullRequestId 造成此組建之提取要求的識別碼。 例如:17。 (只有當組建因為 受分支原則影響的 Git PR而執行時,才會初始化此變數。)
System.PullRequest.SourceBranch 正在提取要求中檢閱的分支。 例如:refs/heads/users/raisa/new-feature。 (只有當組建因為 受分支原則影響的 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 此組建所屬專案的識別碼。
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
因為您已按一下 [ 佇列建置] 按鈕