Teilen über


Ausführen und Erstellen von Nummern

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

In diesem Artikel wird erläutert, wie Azure Pipelines Nummern erstellen und Ausführen von Nummern erstellt werden und wie Sie sie in Ihren Pipelines anpassen können.

Die Ausführungsnummer wird verwendet, um eine bestimmte Ausführung einer Pipeline oder eines Builds zu identifizieren. Die Buildnummer ist gleichbedeutend mit der Laufnummer.

Wenn Sie keinen Buildnamen in YAML-Pipelines angeben oder das Feld "Name " in klassischen Pipelines leer lassen, erhält die Ausführung eine eindeutige ganze Zahl als Namen. Sie können Läufe nützlicheren Namen geben, die für Ihr Team aussagekräftig sind. Sie können eine Kombination aus Token, Variablen und Unterstrichzeichen in Buildnamen verwenden.

In YAML-Pipelines wird die Buildnameneigenschaft aufgerufen name und muss sich auf der Stammebene einer Pipeline befinden. Auf der Stammebene einer YAML-Datei angegebene Elemente sind Pipelineeigenschaften.

Hinweis

Die Eigenschaft name funktioniert nicht in Vorlagendateien.

Im folgenden Beispielcode wird eine angepasste Buildnummer wie project_def_master_20240828.1 ausgegeben.

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

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

Ausführungsnummer

Der Standardwert für eine Ausführungsnummer in Azure Pipelines lautet $(Date:yyyyMMdd).$(Rev:r). $(Rev:r) ist ein spezielles Variablenformat, das nur im Feld "Buildnummer" funktioniert. Wenn ein Build abgeschlossen ist, wird der Rev ganzzahlige Wert um eins erhöht, wenn nichts anderes in der Buildnummer geändert wurde.

$(Rev:r) wird zurückgesetzt, 1 wenn sich ein anderer Teil der Buildnummer ändert. Wenn Sie z. B. das Buildnummernformat so $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r)konfigurieren, wird die Buildnummer zurückgesetzt, wenn sich das Datum ändert.

Wenn die vorherige Buildnummer lautet MyBuild_20230621.1, lautet MyBuild_20230621.2die nächste Buildnummer dieses Tages. Die erste Buildnummer ist MyBuild_20230622.1der nächste Tag.

$(Rev:r) wird auch zurückgesetzt, 1 wenn Sie die Buildnummer ändern, um eine Versionsänderung anzugeben. Wenn ihr Buildformat beispielsweise der Zeitpunkt und 1.0.$(Rev:r) die letzte Buildnummer lautete 1.0.3, wenn Sie die Buildnummer 1.1.$(Rev:r)in ", die nächste Buildnummer ändern, lautet 1.1.1die nächste Buildnummer.

Beispiel

Berücksichtigen Sie die folgenden Daten für eine Buildausführung:

  • Projektname: Fabrikam
  • Pipelinename: CIBuild
  • Branch: main
  • Build-ID/Ausführungs-ID: 752
  • Datum: 6. Mai 2024
  • Uhrzeit: 19:07:03 Uhr
  • Eine Ausführung wurde früher am heutigen Tag abgeschlossen.

Wenn Sie das folgende Buildnummernformat angeben, heißt die zweite Ausführung am 6. Mai 2024 Fabrikam_CIBuild_main_20240506.2.

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

Token

In der folgenden Tabelle wird gezeigt, wie jedes Token basierend auf dem vorherigen Beispiel aufgelöst wird. Sie können diese Token nur zum Definieren von Ausführungsnummern verwenden. Sie funktionieren an keiner anderen Stelle in einer Pipeline.

Token Beispielwert Hinweise
$(Build.DefinitionName) CIBuild Der Pipelinename darf keine ungültigen oder Leerzeichen enthalten.
$(Build.BuildId) 752 $(Build.BuildId) ist eine interne, unveränderliche ID, die auch als Run-ID bezeichnet wird, die in der gesamten Azure DevOps-Organisation eindeutig ist.
$(DayOfMonth) 6
$(DayOfYear) 126
$(Hours) 21
$(Minutes) 7
$(Month) 5
$(Rev:r) 2 Der dritte Tageslauf ist 3usw. Verwenden Sie diese Eigenschaft $(Rev:r) , um sicherzustellen, dass jeder abgeschlossene Build einen eindeutigen Namen hat.
$(Date:yyyyMMdd) 20240506 Sie können andere Datumsformate angeben, z $(Date:MMddyy). B. .
$(Seconds) 3
$(SourceBranchName) Standard
$(TeamProject) Fabrikam
$(Year:yy) 24
$(Year:yyyy) 2024

Wichtig

Wenn Sie präfixe in der Ausführungsnummer anzeigen möchten, können Sie dem Token weitere r Zeichen Rev hinzufügen. Geben Sie beispielsweise an $(Rev:rr) , ob die Rev Zahl mit 01, 02usw. beginnen soll.

Wenn Sie einen Nullabstand Rev als Teil eines Versionsnummernschemas verwenden, beachten Sie, dass einige Pipelineaufgaben oder beliebte Tools wie NuGet-Pakete die führenden Nullen entfernen. Dieses Verhalten führt dazu, dass eine Versionsnummernkonflikt in den erzeugten Artefakten auftritt.

Ausdrücke

Wenn Sie einen Ausdruck verwenden, um die Buildnummer festzulegen, können Sie einige Token nicht verwenden, da ihre Werte nicht zum Zeitpunkt der Auswertung von Ausdrücken festgelegt werden. Zu diesen Token gehören $(Build.BuildId), $(Build.BuildURL)und $(Build.BuildNumber).

Variablen

Sie können benutzerdefinierte und vordefinierte Variablen in Ihrer Buildnummer verwenden. Wenn Sie beispielsweise definieren My.Variable, können Sie das folgende Zahlenformat angeben:

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

Im vorherigen Beispiel sind die ersten vier Variablen vordefiniert. Informationen zum Definieren von Benutzervariablen finden Sie unter Festlegen von Variablen in Pipelines.

Häufig gestellte Fragen

Wie groß kann eine Laufnummer sein, und welche Zeichen kann ich verwenden?

Ausführungsnummern können bis zu 255 Zeichen lang sein. Sie können die Zeichen ", , /, , :<, , >, '|, ?, , , @oder , *oder , nicht verwenden, und Sie können die Zahl nicht mit .beenden.

In welcher Zeitzone werden die Werte für die Buildnummer angegeben?

Die Zeitzone ist UTC.

Die Zeitzone entspricht der Zeitzone des Betriebssystems 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 verwendet, 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 innerhalb eines Skripts auf die Ausführungsnummervariable verweisen?

Sie können eine neue Variable definieren, die die Ausführungsnummer enthält, oder die Ausführungsnummer direkt aufrufen. Im folgenden Beispiel handelt es sich um eine neue Variable, $(MyRunNumber) die die Ausführungsnummer enthält. Sie können die Ausführungsnummervariable mithilfe MyRunNumber oder $(Build.BuildNumber).

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

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

Definieren von Variablen