共用方式為


執行和建置編號

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

本文說明如何建構 Azure Pipelines 組建編號和執行編號,以及如何在管線中自定義它們。

執行編號可用來識別管線或組建的特定執行。 組建編號與執行編號同義。

如果您未在 YAML 管線中指定組建名稱,或將 [名稱] 字段保留為 [傳統管線] 中的空白,則執行會取得唯一的整數做為其名稱。 您可以為您的小組提供更實用的名稱。 您可以在組建名稱中使用標記、變數和底線字元的組合。

在 YAML 管線中,會呼叫 name 組建名稱屬性,而且必須位於管線的根層級。 YAML 檔案根層級指定的專案是 管線 屬性。

注意

屬性 name 不適用於範本檔案。

下列範例程式代碼會輸出自定義的組建編號,例如 project_def_master_202408281

name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:r)

steps:
  - script: echo '$(Build.BuildNumber)'

回合號碼

Azure Pipelines 中執行編號的預設值為 $(Date:yyyyMMdd).$(Rev:r)$(Rev:r) 是只能在組建編號欄位中運作的特殊變數格式。 當組建完成時,如果組建編號中沒有任何其他項目變更,整數值就會 Rev 增加一個。

$(Rev:r)1當組建編號的任何其他部分變更時,會重設為 。 例如,如果您將組建編號格式設定為 $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r),則組建編號會在日期變更時重設。

如果先前的組建編號是 MyBuild_20230621.1,則當天的下一個組建編號為 MyBuild_20230621.2。 第二天的第一個組建編號是 MyBuild_20230622.1

$(Rev:r) 如果您變更組建編號以指出版本變更,也會重設為 1 。 例如,如果您的組建格式是 1.0.$(Rev:r) ,而最後一個組建編號是 ,如果您將組建編號變更為 1.0.31.1.$(Rev:r),則下一個組建編號為 1.1.1

範例

針對組建執行,請考慮下列數據:

  • 項目名稱:Fabrikam
  • 管線名稱:CIBuild
  • 分支: master
  • 組建標識碼/執行標識碼:752
  • 日期:2024 年 5 月 6 日
  • 時間:下午 9:07:03
  • 今天早些時候已完成一次執行。

如果您指定下列組建編號格式,則 2024 年 5 月 6 日的第二個執行會命名 為 Fabrikam_CIBuild_main_20240506.2

$(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)

語彙基元

下表顯示每個令牌如何根據上一個範例解析。 您只能使用這些令牌來定義執行編號。 它們無法在管線中其他地方運作。

Token 範例值 備註
$(Build.DefinitionName) CIBuild 管線名稱不能包含無效或空格符。
$(Build.BuildId) 7:52 $(Build.BuildId) 是內部且不可變的標識碼,也稱為「執行標識符」,在 Azure DevOps 組織中是唯一的。
$(DayOfMonth) 6
$(DayOfYear) 126
$(Hours) 21
$(Minutes) 7
$(Month) 5
$(Rev:r) 2 第三次每日執行是 3,依此方式。 使用 $(Rev:r) 以確保每個已完成的組建都有唯一的名稱。
$(Date:yyyyMMdd) 20240506 您可以指定其他日期格式,例如 $(Date:MMddyy)
$(Seconds) 3
$(SourceBranchName) main
$(TeamProject) Fabrikam
$(Year:yy) 24
$(Year:yyyy) 2024

重要

如果您想要在執行編號中顯示前置詞零,您可以將更多 r 字元新增至 Rev 令牌。 例如,指定$(Rev:rr)是否要以 、 02等開頭01的數位Rev

如果您使用零填補 Rev 做為版本編號配置的一部分,請注意某些管線工作或熱門工具,例如 NuGet 套件,請移除前置零。 此行為會導致產生成品中的版本號碼不符。

運算式

如果您使用表達式來設定組建編號,就無法使用某些標記,因為評估表達式時不會設定其值。 這些權杖包括 $(Build.BuildId)$(Build.BuildURL)$(Build.BuildNumber)

變數

您可以在組建編號中使用使用者定義的和預先定義的變數。 例如,如果您定義 My.Variable,您可以指定下列數位格式:

$(Build.DefinitionName)_$(Build.DefinitionVersion)_$(Build.RequestedFor)_$(Build.BuildId)_$(My.Variable)

在上述範例中,會預先定義前四個變數。 如需如何定義用戶變數的資訊,請參閱 在管線中設定變數。

常見問題集

執行編號的大小,以及可以使用哪些字元?

執行數位最多可達 255 個字元。 您無法使用字元 "、、、:<>、、、'|、、?@*,而且不能以 結束數位./

建置編號時間值所表示的時區為何?

時區為 UTC。

時區與執行應用層伺服器之電腦操作系統的時區相同。

如何以條件動態設定組建編號?

您可以使用變數作為執行編號的一部分。 在下列範例中,變數 why 會當做執行編號的一部分使用,而其值會根據 Build.Reason而變更。

variables:
  - name: why
    ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
      value: pr
    ${{ elseif eq(variables['Build.Reason'], 'Manual' ) }}:
      value: manual
    ${{ elseif eq(variables['Build.Reason'], 'IndividualCI' ) }}:
      value: indivci
    ${{ else }}:
      value: other

name: $(TeamProject)_$(SourceBranchName)_$(why)_$(Date:yyyyMMdd).$(Rev:r)

pool:
  vmImage: 'ubuntu-latest'

steps:
- script: echo '$(Build.BuildNumber)'

如何參考文本中的執行編號變數?

您可以定義包含執行號碼的新變數,或直接呼叫執行號碼。 在下列範例中, $(MyRunNumber) 是包含執行編號的新變數。 您可以使用 或$(Build.BuildNumber)呼叫執行號碼變數MyRunNumber

# Set MyRunNumber
variables: 
  MyRunNumber: '1.0.0-CI+$(Build.BuildNumber)'

steps:
- script: echo $(MyRunNumber)
- script: echo $(Build.BuildNumber)

定義變數