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.3
als u het buildnummer wijzigt in , is 1.1.1
het 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
, 02
enzovoort.
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)