Uitvoerings- of buildnummers configureren

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

U kunt aanpassen hoe uw pijplijnuitvoeringen worden genummerd. De standaardwaarde voor het uitvoeringsnummer is $(Date:yyyyMMdd).$(Rev:r).

In Azure DevOps $(Rev:r) is een speciale variabele-indeling die alleen werkt in het veld buildnummer. Wanneer een build is voltooid en er niets anders in het buildnummer is gewijzigd, neemt de waarde van het Rev gehele getal met één toe.

$(Rev:r) wordt opnieuw ingesteld wanneer u een deel van het buildnummer wijzigt. Als u bijvoorbeeld de notatie van het buildnummer hebt geconfigureerd, $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r)wordt het buildnummer opnieuw ingesteld wanneer de datum de volgende dag wordt gewijzigd. Als uw buildnummer is, is MyBuild_20230621.1het volgende buildnummer dat dag is MyBuild_20230621.2. De volgende dag is MyBuild_20230622.1het buildnummer.

Als uw buildnummernotatie is 1.0.$(Rev:r), wordt het buildnummer opnieuw ingesteld wanneer u een deel van het getal wijzigt 1.0.1 . Als uw laatste buildnummer bijvoorbeeld was 1.0.3en u het buildnummer wijzigt om 1.1.$(Rev:r) een versiewijziging aan te geven, is 1.1.1het volgende buildnummer.

In YAML wordt deze eigenschap aangeroepen name en moet deze zich op het hoofdniveau van een pijplijn bevinden.

Notitie

Items die zijn opgegeven op het hoofdniveau van een YAML-bestand, zijn pijplijneigenschappen .

Als dit niet is opgegeven, krijgt uw uitvoering een uniek geheel getal als naam. U kunt uitvoeringen veel nuttigere namen geven die zinvol zijn voor uw team. U kunt een combinatie van tokens, variabelen en onderstrepingstekens gebruiken. De name eigenschap werkt niet in sjabloonbestanden.

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

steps:
  - script: echo '$(Build.BuildNumber)' # outputs customized build number like project_def_master_20200828.1

YAML-builds zijn nog niet beschikbaar op TFS.

Opmerking

Op dat moment wordt een uitvoering gestart:

  • Projectnaam: Fabrikam

  • Pijplijnnaam: CIBuild

  • Vertakking: hoofd

  • Build-id/uitvoerings-id: 752

  • Datum: 5 mei 2019.

  • Tijd: 19:07:03 pm.

  • Eén uitvoering is eerder vandaag voltooid.

Als u deze buildnummernotatie opgeeft:

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

Vervolgens zou de tweede uitvoering op deze dag de naam hebben: Fabrikam_CIBuild_main_20190505.2

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 een uitvoeringsnummer te definiëren; ze werken nergens anders in uw pijplijn.

Token Voorbeeld van vervangingswaarde
$(Build.DefinitionName) CIBuild

Opmerking: de naam van de pijplijn mag geen ongeldige tekens of spaties bevatten.
$(Build.BuildId) 752

$(Build.BuildId) is een interne onveranderbare id die ook wel de run-id wordt genoemd. Het is uniek in de hele organisatie.
$(DayOfMonth) 5
$(DayOfYear) 217
$(Hours) 21
$(Minutes) 7
$(Month) 8
$(Rev:r) 2 (De derde uitvoering is 3, enzovoort.)

Gebruik $(Rev:r) om ervoor te zorgen dat elke voltooide build een unieke naam heeft. Wanneer een build wordt gestart en er niets anders in het buildnummer is gewijzigd, wordt de waarde voor het gehele getal Rev met één verhoogd.

Als u voorvoegselnullen in het getal wilt weergeven, kunt u meer r-tekens toevoegen. Geef bijvoorbeeld $(Rev:rr) op als u wilt dat het revnummer begint met 01, 02 enzovoort. Als u een nul-padded 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, waardoor een versienummer niet overeenkomt in de artefacten die worden geproduceerd.
$(Date:yyyyMMdd) 20090824

U kunt andere datumnotaties opgeven, zoals $(Date:MMddyy)
$(Seconds) 3
$(SourceBranchName) main
$(TeamProject) Fabrikam
$(Year:yy) 09
$(Year:yyyy) 2009

Variabelen

U kunt ook door de gebruiker gedefinieerde en vooraf gedefinieerde variabelen gebruiken die een bereik van Alles in uw getal hebben. Als u bijvoorbeeld hebt gedefinieerd My.Variable, kunt u de volgende getalnotatie opgeven:

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

De eerste vier variabelen zijn vooraf gedefinieerd. My.Variable wordt door u gedefinieerd op het tabblad Variabelen.

Expressies

Als u een expressie gebruikt om het buildnummer in te stellen, kunt u sommige tokens niet 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).

Veelgestelde vragen

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

Uitvoeringen mogen maximaal 255 tekens zijn. Tekens die niet zijn toegestaan, zijn onder andere ", /, :, <, >, ', |, ?en @*. Je kunt niet eindigen met een ..

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 u de server van de toepassingslaag uitvoert.

Hoe kunt u verwijzen naar de variabele run number binnen een script?

De variabele voor het uitvoeringsnummer kan worden aangeroepen met $(Build.BuildNumber). U kunt een nieuwe variabele definiëren die het uitvoeringsnummer bevat of het uitvoeringsnummer rechtstreeks aanroepen. In dit voorbeeld $(MyRunNumber) is een nieuwe variabele die het uitvoeringsnummer bevat.

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


steps:
- script: echo $(MyRunNumber) # display MyRunNumber
- script: echo $(Build.BuildNumber) #display Run Number

Hoe kan ik het buildnummer dynamisch instellen met voorwaarden?

U kunt variabelen gebruiken als onderdeel van uw uitvoeringsnummer. In dit voorbeeld wordt de variabele why gewijzigd, afhankelijk van de Build.Reason en wordt deze gebruikt als onderdeel van het uitvoeringsnummer.

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