Delen via


Getallen uitvoeren en bouwen

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

Een uniek uitvoeringsnummer of buildnummer identificeert elke uitvoering van een Azure Pipelines-pijplijn of -build. In dit artikel wordt de structuur van dit nummer uitgelegd en hoe u het kunt aanpassen om nuttiger of zinvoler te zijn voor uw team.

Als u geen buildnaam opgeeft in YAML-pijplijnen of als u het veld Naam - of Build-getalnotatie leeg laat in klassieke pijplijnen, krijgt elke uitvoering een uniek geheel getal als naam. Buildnamen kunnen andere tekens, tokens en variabelen gebruiken. U kunt uitvoerings- en buildnummers aanpassen met behulp van naamgevingspatronen, speciale tokens en vooraf gedefinieerde of door de gebruiker gedefinieerde variabelen.

Configuratie van buildnummer

In klassieke pijplijnen kunt u de indeling buildnummer aanpassen onder Opties in de pijplijndefinitie. In YAML-pijplijnen kunt u de indeling van het uitvoeringsnummer aanpassen met behulp van de name eigenschap op pijplijnniveau van het YAML-bestand. De name eigenschap wordt niet ondersteund in sjablonen of fasen.

In het volgende voorbeeld wordt een aangepaste indeling voor runnummers ingesteld die een buildnummer produceert, zoals MyProject_MyBuild_main_20240828.1.

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

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

Aantal uitvoeringen

De standaardwaarde voor een Azure Pipelines-uitvoeringsnummer is $(Date:yyyyMMdd).$(Rev:r). De $(Rev:r) revisievariabele werkt alleen in een buildnummerveld. Wanneer een build is voltooid, neemt de Rev gehele waarde met één toe als er niets anders in het buildnummer wordt gewijzigd.

$(Rev:r) wordt opnieuw ingesteld op 1 wanneer een ander deel van het buildnummer wordt gewijzigd. Als u bijvoorbeeld de notatie van het buildnummer configureert als $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r), wordt het buildnummer opnieuw ingesteld wanneer de datum wordt gewijzigd.

Als het vorige buildnummer MyBuild_20230621.1 is, wordt het volgende buildnummer dat dag is MyBuild_20230621.2. Het eerste buildnummer de volgende dag is MyBuild_20230622.1.

$(Rev:r) wordt ook opnieuw ingesteld als u de versie wijzigt 1 . Als uw build-indeling is 1.0.$(Rev:r) en uw laatste buildnummer 1.0.3 was, is het volgende buildnummer 1.1.$(Rev:r) als u de versie wijzigt.

De volgende buildnummernotatie produceert de naam Fabrikam_CIBuild_main_20240506.2 voor de tweede uitvoering op 6 mei 2024.

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

De tokens voor buildnummers worden als volgt omgezet:

  • Projectnaam: Fabrikam
  • Naam van builddefinitie: CIBuild
  • Vertakking: hoofd
  • Datum: 6 mei 2024
  • Loopnummer voor die dag: 2

Nummertokens uitvoeren

In de volgende tabel ziet u hoe het uitvoeren van nummertokens wordt omgezet. U kunt deze tokens alleen gebruiken om uitvoeringsnummers te definiëren. Ze werken nergens anders in een pijplijn.

Teken Voorbeeldwaarde Opmerkingen
$(Build.DefinitionName) CIBuild Een buildnaam die geen ongeldige tekens of spaties mag bevatten.
$(Build.BuildId) 752 Een interne, onveranderbare id, ook wel de Run ID, die uniek is in de Azure DevOps-organisatie.
$(Date:yyyyMMdd) 20240506 Een datumnotatie. U kunt ook andere datumnotaties opgeven, zoals $(Date:MMddyy).
$(DayOfMonth) 6
$(DayOfYear) 126
$(Hours) 21
$(Minutes) 7
$(Month) 5
$(Rev:r) 2 Positie in het aantal uitvoeringen die dag. Gebruik $(Rev:r) dit om ervoor te zorgen dat elke voltooide build een unieke naam heeft.
$(Seconds) 3
$(SourceBranchName) voornaamste
$(TeamProject) Fabrikam
$(Year:yy) 24
$(Year:yyyy) 2024

Belangrijk

Als u voorvoegselnullen in het uitvoeringsnummer wilt weergeven, kunt u meer r tekens toevoegen aan het Rev token. Geef bijvoorbeeld op $(Rev:rr) of u wilt dat het Rev getal begint met 01, 02enzovoort.

Als u echter een nul-paddd Rev gebruikt als onderdeel van een versienummeringsschema, verwijderen sommige pijplijntaken of populaire hulpprogramma's zoals NuGet-pakketten de voorloopnullen. Dit gedrag zorgt ervoor dat een versienummer niet overeenkomt in de artefacten die door de build worden geproduceerd.

Expressies in uitvoeringsnummers

Als u een expressie gebruikt om het uitvoeringsnummer in te stellen, kunt u het $(Build.BuildId), $(Build.BuildUri)of $(Build.BuildNumber) de tokens niet gebruiken, omdat hun waarden nog niet zijn ingesteld op het moment dat pijplijnexpressies worden geëvalueerd.

Variabelen in uitvoeringsnummers

U kunt zowel vooraf gedefinieerde als door de gebruiker gedefinieerde variabelen in uw uitvoeringsnummer gebruiken. Als u bijvoorbeeld definieert My.Variable, kunt u de volgende getalnotatie opgeven. De eerste vier variabelen zijn vooraf gedefinieerd.

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

Zie Vooraf gedefinieerde variabelen gebruiken voor meer informatie over vooraf gedefinieerde variabelen. Zie Variabelen definiëren voor meer informatie over het definiëren van gebruikersvariabelen.

Veelgestelde vragen

Hoe groot kan een uitvoeringsnummer zijn en welke tekens kan ik gebruiken?

Uitvoeringsnummers kunnen maximaal 255 tekens zijn. U kunt de tekens ", , /, \, :, <, , >, ', |?, @of *, niet gebruiken en u kunt het getal niet beëindigen met ..

In welke tijdzone worden de tijdwaarden voor het buildnummer uitgedrukt?

De tijdzone is UTC.

De tijdzone is hetzelfde als het besturingssysteem van de computer waarop de server van de toepassingslaag wordt uitgevoerd.

Hoe kan ik het buildnummer dynamisch instellen met voorwaarden?

U kunt variabelen gebruiken als onderdeel van uw uitvoeringsnummer. In het volgende voorbeeld wordt de variabele why ingesteld als onderdeel van het uitvoeringsnummer en verandert de waarde ervan, afhankelijk van de 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)'

Hoe kan ik verwijzen naar de variabele run number binnen een script?

U kunt rechtstreeks naar het uitvoeringsnummer verwijzen zoals $(Build.BuildNumber) in uw scripts of een aangepaste variabele maken die het nummer bevat. Voorbeeld:

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

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