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.1
het volgende buildnummer dat dag is MyBuild_20230621.2
. De volgende dag is MyBuild_20230622.1
het 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.3
en u het buildnummer wijzigt om 1.1.$(Rev:r)
een versiewijziging aan te geven, is 1.1.1
het 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
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor