設定執行或組建編號
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
您可以自定義管線執行編號的方式。 執行編號的預設值為 $(Date:yyyyMMdd).$(Rev:r)
。
在 Azure DevOps $(Rev:r)
中,是一種特殊的變數格式,只能在組建編號欄位中運作。 當建置完成時,如果組建編號中沒有任何其他專案已變更,整數 Rev
值就會增加一個。
$(Rev:r)
當您變更組建編號的一部分時,會重設 。 例如,如果您已將組建編號格式設定為 $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r)
,則組建編號會在第二天變更日期時重設。 如果您組建編號是 MyBuild_20230621.1
,則當天的下一個組建編號為 MyBuild_20230621.2
。 第二天,組建編號為 MyBuild_20230622.1
。
如果您組建編號格式為 1.0.$(Rev:r)
,則組建編號會在您變更部分數位時重設為 1.0.1
。 例如,如果您的最後一個組建編號是 1.0.3
,而您將組建編號變更為 1.1.$(Rev:r)
,表示版本變更,則下一個組建編號為 1.1.1
。
在 YAML 中,這個屬性稱為 name
,而且必須位於管線的根層級。
注意
YAML 檔案根層級指定的專案是 管線 屬性。
如果未指定,您的執行會以唯一的整數作為其名稱。
您可以為您的小組提供更實用的名稱。
您可以使用標記、變數和底線字元的組合。
屬性 name
不適用於範本檔案。
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)
steps:
- script: echo '$(Build.BuildNumber)' # outputs customized build number like project_def_master_20200828.1
TFS 尚無法使用 YAML 組建。
範例
此時會啟動執行:
項目名稱:Fabrikam
管線名稱:CIBuild
分支: master
組建標識碼/執行標識碼:752
日期:2019 年 5 月 5 日。
時間:下午9:07:03。
今天早些時候已完成一次執行。
如果您指定此組建編號格式:
$(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:.r)
然後,這一天的第二次執行會命名為: Fabrikam_CIBuild_main_20190505.2
語彙基元
下表顯示如何根據上一個範例解析每個令牌。 您只能使用這些令牌來定義執行編號;它們不會在您的管線中其他地方運作。
Token | 範例取代值 |
---|---|
$(Build.DefinitionName) |
CIBuild 注意:管線名稱不得包含無效或空格符。 |
$(Build.BuildId) |
752 $(Build.BuildId) 是內部固定標識符,也稱為執行標識符。 在整個組織中是獨一無二的。 |
$(DayOfMonth) |
5 |
$(DayOfYear) |
217 |
$(Hours) |
21 |
$(Minutes) |
7 |
$(Month) |
8 |
$(Rev:r) |
2 (第三次執行為 3,依故。 使用 $(Rev:r) 確保每個已完成的組建都有唯一的名稱。 當組建啟動時,如果組建編號中沒有任何其他項目變更,Rev 整數值就會遞增一個。 如果您想要在數字中顯示前置詞零,您可以新增更多 'r' 字元。 例如,如果您想要以 01、02 等開頭的 Rev 號碼,請指定 $(Rev:rr )。 如果您使用零填補 Rev 做為版本編號配置的一部分,請注意,某些管線工作或熱門工具,例如 NuGet 套件,請移除前置零,這會導致產生成品中的版本號碼不符。 |
$(Date:yyyyMMdd) |
20090824 您可以指定其他日期格式,例如 $(Date:MMddy) |
$(Seconds) |
3 |
$(SourceBranchName) |
main |
$(TeamProject) |
Fabrikam |
$(Year:yy) |
09 |
$(Year:yyyy) |
2009 |
變數
您也可以在數位中使用使用者定義和預先定義的變數,其範圍為 「全部」。 例如,如果您已定義 My.Variable
,您可以指定下列數位格式:
$(Build.DefinitionName)_$(Build.DefinitionVersion)_$(Build.RequestedFor)_$(Build.BuildId)_$(My.Variable)
前四個變數是預先定義的。 My.Variable
由您在 [變數] 索引標籤上定義。
運算式
如果您使用表達式來設定組建編號,就無法使用某些標記,因為評估表達式時不會設定其值。 這些權杖包括 $(Build.BuildId)
、 $(Build.BuildURL)
與 $(Build.BuildNumber)
。
常見問題集
執行編號的大小,以及可以使用哪些字元?
執行最多可以有 255 個字元。 不允許的字元包括 "
、/
、<
:
、、、>
、'
、、|
、?
、、 @
和 *
。 您無法以 結尾 .
。
建置編號時間值在哪個時區中表示?
時區為UTC。
時區與您執行應用層伺服器之電腦的作業系統時區相同。
如何在腳本中參考執行編號變數?
您可以使用呼叫 $(Build.BuildNumber)
執行編號變數。 您可以定義包含執行號碼的新變數,或直接呼叫執行號碼。 在此範例中, $(MyRunNumber)
是包含執行編號的新變數。
# Set MyRunNumber
variables:
MyRunNumber: '1.0.0-CI+$(Build.BuildNumber)'
steps:
- script: echo $(MyRunNumber) # display MyRunNumber
- script: echo $(Build.BuildNumber) #display Run Number
如何以條件動態設定組建編號?
您可以使用變數作為執行編號的一部分。 在此範例中,變數 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)' ## output run number
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應