Delen via


Getallen uitvoeren en bouwen

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

In dit artikel wordt uitgelegd hoe Azure Pipelines-buildnummers en uitvoeringsnummers worden samengesteld en hoe u ze in uw pijplijnen kunt aanpassen.

Het uitvoeringsnummer wordt gebruikt om een specifieke uitvoering van een pijplijn of build te identificeren. Het buildnummer staat gelijk aan het uitvoeringsnummer.

Als u geen buildnaam opgeeft in YAML-pijplijnen of als u het veld Naam leeg laat in klassieke pijplijnen, krijgt de uitvoering een uniek geheel getal als naam. U kunt uitvoeringen nuttigere namen geven die zinvol zijn voor uw team. U kunt een combinatie van tokens, variabelen en onderstrepingstekens in buildnamen gebruiken.

In YAML-pijplijnen wordt de eigenschap buildnaam aangeroepen name en moet deze zich op het hoofdniveau van een pijplijn bevinden. Items die zijn opgegeven op het hoofdniveau van een YAML-bestand, zijn pijplijneigenschappen .

Notitie

De name eigenschap werkt niet in sjabloonbestanden.

De volgende voorbeeldcode voert een aangepast buildnummer uit, zoals project_def_master_202408281.

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

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

Aantal uitvoeringen

De standaardwaarde voor een uitvoeringsnummer in Azure Pipelines is $(Date:yyyyMMdd).$(Rev:r). $(Rev:r) is een speciale variabelenotatie die alleen in het buildnummerveld werkt. Wanneer een build is voltooid, neemt de Rev gehele waarde met één toe als er niets anders in het buildnummer is 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 was MyBuild_20230621.1, is 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 het buildnummer wijzigt 1 om een versiewijziging aan te geven. Als uw build-indeling bijvoorbeeld is 1.0.$(Rev:r) en uw laatste buildnummer , 1.0.3als u het buildnummer wijzigt in , is 1.1.1het volgende buildnummer1.1.$(Rev:r).

Opmerking

Houd rekening met de volgende gegevens voor een builduitvoering:

  • Projectnaam: Fabrikam
  • Pijplijnnaam: CIBuild
  • Vertakking: hoofd
  • Build-id/uitvoerings-id: 752
  • Datum: 6 mei 2024
  • Tijd: 19:07:03 pm
  • Eén uitvoering is eerder vandaag voltooid.

Als u de volgende buildnummernotatie opgeeft, heet de tweede uitvoering op 6 mei 2024 Fabrikam_CIBuild_main_20240506.2.

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

Tokens

In de volgende tabel ziet u hoe elk token wordt omgezet, op basis van het vorige voorbeeld. U kunt deze tokens alleen gebruiken om uitvoeringsnummers te definiëren. Ze werken nergens anders in een pijplijn.

Token Voorbeeldwaarde Opmerkingen
$(Build.DefinitionName) CIBuild De naam van de pijplijn mag geen ongeldige tekens of spaties bevatten.
$(Build.BuildId) 752 $(Build.BuildId) is een interne, onveranderbare id, ook wel de run-id genoemd, die uniek is binnen de Azure DevOps-organisatie.
$(DayOfMonth) 6
$(DayOfYear) 126
$(Hours) 21
$(Minutes) 7
$(Month) 5
$(Rev:r) 2 De derde dagelijkse uitvoering is 3, enzovoort. Gebruik $(Rev:r) dit om ervoor te zorgen dat elke voltooide build een unieke naam heeft.
$(Date:yyyyMMdd) 20240506 U kunt andere datumnotaties opgeven, zoals $(Date:MMddyy).
$(Seconds) 3
$(SourceBranchName) main
$(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 een nul-padd Rev gebruikt als onderdeel van een versienummeringsschema, moet u er rekening mee houden dat sommige pijplijntaken of populaire hulpprogramma's, zoals NuGet-pakketten, de voorloopnullen verwijderen. Dit gedrag zorgt ervoor dat een versienummer niet overeenkomt in de artefacten die worden geproduceerd.

Expressies

Als u een expressie gebruikt om het buildnummer in te stellen, kunt u geen tokens gebruiken, omdat hun waarden niet zijn ingesteld op het moment dat expressies worden geëvalueerd. Deze tokens omvatten $(Build.BuildId), $(Build.BuildURL)en $(Build.BuildNumber).

Variabelen

U kunt door de gebruiker gedefinieerde en vooraf gedefinieerde variabelen in uw buildnummer gebruiken. Als u bijvoorbeeld definieert My.Variable, kunt u de volgende getalnotatie opgeven:

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

In het voorgaande voorbeeld zijn de eerste vier variabelen vooraf gedefinieerd. Zie Variabelen instellen in pijplijnen 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 de tijdzone van 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 gebruikt 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 een nieuwe variabele definiëren die het uitvoeringsnummer bevat of het uitvoeringsnummer rechtstreeks aanroepen. In het volgende voorbeeld $(MyRunNumber) is een nieuwe variabele die het uitvoeringsnummer bevat. U kunt de variabele uitvoeringsnummer aanroepen met behulp van MyRunNumber of $(Build.BuildNumber).

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

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

Variabelen definiëren