使用預先定義的變數

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 的新變數。

    Set System Debug to 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 中的Artifacts

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

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: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/master
  • 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/mastermaster 。 在此值中 refs/heads/feature/toolstools
  • 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.SourceVersionPR 組建的認可是合併認可 (不是來源分支) 的認可。

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

注意:TFS 2015.4 提供此變數。

Build.StagingDirectory

將任何成品複製到其目的地之前,代理程式上的本機路徑。 例如:c:\agent_work\1\a

使用此資料夾的一般方法是使用 複製檔案發佈組建成品工作來發佈組建成品

注意:Build.ArtifactStagingDirectory 和 Build.StagingDirectory 是可交換的。 此目錄會在每個新組建之前清除,因此您不需要自行清除。

請參閱Azure Pipelines 中的Artifacts

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

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 和無代理程式) 作業。
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 針對 Azure Repos。 (只有當組建因為 受分支原則影響的 Git PR 而執行時,才會初始化此變數) 。 只有在 PR 受到分支原則影響時,才能在 YAML 管線中使用這個變數。
System.PullRequest.SourceRepositoryURI 包含提取要求的存放庫 URL。 例如:https://dev.azure.com/ouraccount/_git/OurProject
System.PullRequest.TargetBranch 作為提取要求目標的分支。 例如: refs/heads/master 當您的存放庫位於 Azure Repos,而 master 您的存放庫位於 GitHub 時。 只有當組建因為 受分支原則影響的 Git PR而執行時,才會初始化此變數。 只有在 PR 受到分支原則影響時,才能在 YAML 管線中使用這個變數。
System.TeamFoundationCollectionUri TFS 集合或Azure DevOps組織的 URI。 例如:https://dev.azure.com/fabrikamfiber/

此變數是代理程式範圍,而且可作為腳本中的環境變數和建置工作中的參數,但不能當做組建編號或版本控制標記的一部分使用。
System.TeamProject 包含此組建的專案名稱。
System.TeamProjectId 此組建所屬專案的識別碼。
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 中的Artifacts

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

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: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/master
  • 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/mastermaster 。 在此值中 refs/heads/feature/toolstools
  • 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 中的Artifacts

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

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

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

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

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

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

System.DefinitionId 組建管線的識別碼。
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/master 當您的存放庫位於Azure Repos,而 master 您的存放庫位於GitHub時。 只有在組建因為 受分支原則影響的 Git PR而執行時,才會初始化此變數。 只有在 PR 受到分支原則影響時,才能在 YAML 管線中使用這個變數。
System.TeamFoundationCollectionUri 小組基礎集合的 URI。 例如:https://dev.azure.com/fabrikamfiber/

此變數是代理程式範圍,可以做為腳本中的環境變數,也可以當做建置工作中的參數使用,但不能做為組建編號或版本控制標記的一部分。
System.TeamProject 包含此組建的專案名稱。
System.TeamProjectId 此組建所屬專案的識別碼。
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 中的Artifacts

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

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: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/master
  • 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/mastermaster 。 在此值中 refs/heads/feature/toolstools
  • 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 中的Artifacts

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

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/master。 只有在組建因為 受分支原則影響的 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 中的Artifacts

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

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:Git 推送或 TFVC 簽入所觸發的持續整合 (CI) ,並已選取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/master
  • 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/mastermaster 。 在此值中 refs/heads/feature/toolstools
  • 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 中的Artifacts

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

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 。 否則,它會設定為 FalseTFS 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/master。 只有在組建因為 受分支原則影響的 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
因為您已按一下 [ 佇列建置 ] 按鈕