Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Eine eindeutige Ausführungsnummer oder Buildnummer identifiziert jede Ausführung einer Azure Pipelines-Pipeline oder eines Builds. In diesem Artikel wird die Struktur dieser Zahl erläutert und erläutert, wie Sie sie so anpassen können, dass sie für Ihr Team nützlicher oder sinnvoller ist.
Wenn Sie keinen Buildnamen in YAML-Pipelines angeben oder die Felder Name oder Buildnummer Format in Classic Pipelines leer lassen, erhält jede Ausführung eine eindeutige Ganzzahl als Namen. Buildnamen können andere Zeichen, Token und Variablen verwenden. Sie können Ausführungs- und Buildnummern mithilfe von Benennungsmustern, speziellen Token und vordefinierten oder benutzerdefinierten Variablen anpassen.
Buildnummernkonfiguration
In klassischen Pipelines können Sie unter Optionen in der Pipelinedefinition das Buildnummernformat anpassen. In YAML-Pipelines können Sie das Zahlenformat der Ausführung anpassen, indem Sie die name Eigenschaft auf Pipelineebene der YAML-Datei verwenden. Die name Eigenschaft wird in Vorlagen und Stufen nicht unterstützt.
Im folgenden Beispiel wird ein benutzerdefiniertes Zahlenformat festgelegt, das eine Buildnummer wie MyProject_MyBuild_main_20240828.1 erzeugt.
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)
steps:
- script: echo '$(Build.BuildNumber)'
Ausführungsnummer
Der Standardwert für eine Ausführungsnummer von Azure Pipelines lautet $(Date:yyyyMMdd).$(Rev:r). Die $(Rev:r) Revisionsvariable funktioniert nur in einem Buildnummernfeld. Wenn ein Build abgeschlossen ist, wird der Rev ganzzahlige Wert um eins erhöht, wenn sich nichts anderes in der Buildnummer ändert.
$(Rev:r) wird auf 1 zurückgesetzt, wenn ein anderer Teil der Buildnummer geändert wird. Wenn Sie das Buildnummernformat beispielsweise als $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r) konfigurieren, wird die Buildnummer zurückgesetzt, wenn sich das Datum ändert.
Wenn die vorherige Buildnummer MyBuild_20230621.1 war, ist die nächste Buildnummer an diesem Tag MyBuild_20230621.2. Die erste Buildnummer am nächsten Tag ist MyBuild_20230622.1.
$(Rev:r) wird auch auf 1 zurückgesetzt, wenn Sie die Version ändern. Wenn Ihr Build-Format 1.0.$(Rev:r) ist und Ihre letzte Buildnummer 1.0.3 war, lautet die nächste Buildnummer 1.1.$(Rev:r), wenn Sie die Version auf ändern.
Das folgende Buildnummernformat erzeugt den Namen Fabrikam_CIBuild_main_20240506.2 für die zweite Ausführung am 6. Mai 2024.
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)
Die Buildnummerntoken werden wie folgt aufgelöst:
- Projektname: Fabrikam
- Build-Definitionsname: CIBuild
- Zweigstelle: Haupt
- Datum: 6. Mai 2024
- Laufnummer für diesen Tag: 2
Ausführen von Nummerntoken
In der folgenden Tabelle wird die Auflösung von Zahlentoken veranschaulicht. Sie können diese Token nur zum Definieren von Ausführungsnummern verwenden. Sie funktionieren an keiner anderen Stelle einer Pipeline.
| Token | Beispielwert | Notizen |
|---|---|---|
$(Build.DefinitionName) |
CIBuild | Ein Buildname, der keine ungültigen oder Leerzeichen enthalten kann. |
$(Build.BuildId) |
752 | Eine interne, unveränderliche ID, die in der Azure DevOps-Organisation eindeutig und auch als Run ID bezeichnet wird. |
$(Date:yyyyMMdd) |
20240506 | Ein Datumsformat. Sie können auch andere Datumsformate angeben, zum Beispiel $(Date:MMddyy). |
$(DayOfMonth) |
6 | |
$(DayOfYear) |
126 | |
$(Hours) |
21 | |
$(Minutes) |
7 | |
$(Month) |
5 | |
$(Rev:r) |
2 | Platzierung in der Anzahl der Läufe an diesem Tag. Verwenden Sie $(Rev:r), um sicherzustellen, dass jeder abgeschlossene Build einen eindeutigen Namen hat. |
$(Seconds) |
3 | |
$(SourceBranchName) |
Standard | |
$(TeamProject) |
Fabrikam | |
$(Year:yy) |
24 | |
$(Year:yyyy) |
2024 |
Wichtig
Wenn Sie vorangestellte Nullen in der Ausführungsnummer anzeigen möchten, können Sie weitere r-Zeichen zum Token Rev hinzufügen. Sie können beispielsweise $(Rev:rr) angeben, wenn die Rev-Nummer mit 01, 02 usw. beginnen soll.
Wenn Sie jedoch ein mit führenden Nullen aufgefülltes Rev als Teil eines Versionsnummernschemas verwenden, streichen einige Pipelineaufgaben oder beliebte Tools wie NuGet-Pakete die führenden Nullen. Dieses Verhalten führt dazu, dass eine Versionsnummernabweichung in den vom Build erzeugten Artefakten auftritt.
Ausdrücke in Laufnummern
Wenn Sie einen Ausdruck verwenden, um die Ausführungsnummer festzulegen, können Sie die Tokens $(Build.BuildId), $(Build.BuildUri) oder $(Build.BuildNumber) nicht verwenden, da ihre Werte zum Zeitpunkt der Auswertung der Pipeline-Ausdrücke noch nicht festgelegt sind.
Variablen in Laufnummern
Sie können sowohl vordefinierte als auch benutzerdefinierte Variablen in Ihrer Ausführungsnummer verwenden. Wenn Sie beispielsweise definieren My.Variable, können Sie das folgende Zahlenformat angeben. Die ersten vier Variablen sind vordefinierte.
$(Build.DefinitionName)_$(Build.DefinitionVersion)_$(Build.RequestedFor)_$(Build.BuildId)_$(My.Variable)
Weitere Informationen zu vordefinierten Variablen finden Sie unter Verwenden vordefinierter Variablen. Informationen zum Definieren von Benutzervariablen finden Sie unter Definieren von Variablen.
Häufig gestellte Fragen
Wie groß kann eine Ausführungsnummer sein und welche Zeichen kann ich verwenden?
Ausführungsnummern können bis zu 255 Zeichen enthalten. Sie können die Zeichen ", /, \, :, <, >, ', |, ?, @, * oder . nicht verwenden, und Sie können die Zahl nicht mit . beenden.
In welcher Zeitzone werden die Zeitwerte für die Buildnummer ausgedrückt?
Die Zeitzone ist UTC.
Die Zeitzone entspricht dem Betriebssystem des Computers, auf dem der Anwendungsebenenserver ausgeführt wird.
Wie kann ich die Buildnummer dynamisch mit Bedingungen festlegen?
Sie können Variablen als Teil Ihrer Ausführungsnummer verwenden. Im folgenden Beispiel wird die Variable why als Teil der Ausführungsnummer festgelegt, und der Wert ändert sich je nach .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)'
Wie kann ich in einem Skript auf die Variable der Ausführungsnummer verweisen?
Sie können direkt wie $(Build.BuildNumber) in Ihren Skripts auf die Ausführungsnummer verweisen oder eine benutzerdefinierte Variable erstellen, die die Zahl enthält. Beispiel:
# Set MyRunNumber
variables:
MyRunNumber: '1.0.0-CI+$(Build.BuildNumber)'
steps:
- script: echo $(MyRunNumber)
- script: echo $(Build.BuildNumber)