Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
Ett unikt körningsnummer eller versionsnummer identifierar varje körning av en Azure Pipelines-pipeline eller -version. Den här artikeln beskriver strukturen för det här numret och hur du kan anpassa det så att det blir mer användbart eller meningsfullt för ditt team.
Om du inte anger ett byggnamn i YAML-pipelines, eller om du lämnar fältet Namn eller Skapa nummerformat tomt i klassiska pipelines, får varje körning ett unikt heltal som namn. Byggnamsbeteckningar kan använda andra tecken, tokener och variabler. Du kan anpassa körnings- och byggnummer med hjälp av namngivningsmönster, särskilda token och fördefinierade eller användardefinierade variabler.
Konfiguration av byggnummer
I klassiska pipelines kan du anpassa byggnummerformatet under avsnittet Alternativ i pipelinedefinitionen. I YAML-pipelines kan du anpassa körningsnummerformatet med hjälp name av egenskapen på pipelinenivå för YAML-filen. Egenskapen name stöds inte i mallar eller faser.
I följande exempel anges ett anpassat körnummerformat som genererar ett byggnummer som MyProject_MyBuild_main_20240828.1.
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)
steps:
- script: echo '$(Build.BuildNumber)'
Löpningsnummer
Standardvärdet för ett Azure Pipelines-körningsnummer är $(Date:yyyyMMdd).$(Rev:r). Revisionsvariabeln $(Rev:r) fungerar bara i ett byggnummerfält. När en version är klar, om inget annat i versionsnumret ändras, Rev ökar heltalsvärdet med ett.
$(Rev:r) återställs till 1 när någon annan del av versionsnumret ändras. Om du till exempel konfigurerar versionsnummerformatet som $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r)återställs versionsnumret när datumet ändras.
Om det tidigare versionsnumret var MyBuild_20230621.1 är nästa versionsnummer den dagen MyBuild_20230621.2. Det första versionsnumret nästa dag är MyBuild_20230622.1.
$(Rev:r) återställs också till 1 om du ändrar versionen. Om versionsformatet är 1.0.$(Rev:r) och ditt senaste versionsnummer var 1.0.3, om du ändrar versionen till 1.1.$(Rev:r), är nästa versionsnummer 1.1.1.
Följande versionsnummerformat genererar namnet Fabrikam_CIBuild_main_20240506.2 för den andra körningen den 6 maj 2024.
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)
Byggnummer tokens löses upp enligt följande:
- Projektnamn: Fabrikam
- Versionsdefinitionsnamn: CIBuild
- Gren: main
- Datum: 6 maj 2024
- Körningsnummer för den dagen: 2
Körningsnummertoken
I följande tabell visas hur körningsnummertoken löser sig. Du kan bara använda dessa tokens för att definiera processnummer. De fungerar inte på någon annan plats i en pipeline.
| Bevis | Exempelvärde | Anteckningar |
|---|---|---|
$(Build.DefinitionName) |
CIBuild | Ett byggnamn som inte får innehålla ogiltiga tecken eller blankstegstecken. |
$(Build.BuildId) |
752 | Ett internt, oföränderligt ID, även kallat Run ID, som är unikt i Azure DevOps-organisationen. |
$(Date:yyyyMMdd) |
20240506 | Ett datumformat. Du kan också ange andra datumformat, till exempel $(Date:MMddyy). |
$(DayOfMonth) |
6 | |
$(DayOfYear) |
126 | |
$(Hours) |
21 | |
$(Minutes) |
7 | |
$(Month) |
5 | |
$(Rev:r) |
2 | Placering i antalet körningar den dagen. Använd $(Rev:r) för att säkerställa att varje slutförd version har ett unikt namn. |
$(Seconds) |
3 | |
$(SourceBranchName) |
huvudsaklig | |
$(TeamProject) |
Fabrikam | |
$(Year:yy) |
24 | |
$(Year:yyyy) |
2024 |
Viktigt!
Om du vill visa prefixnollor i löpnumret kan du lägga till fler r tecken i Rev tokenen. Ange till exempel $(Rev:rr) om du vill Rev att talet ska börja med 01, 02och så vidare.
Men om du använder ett nollutfyllt Rev som en del av ett versionsnumreringsschema tar vissa pipeline-uppgifter eller populära verktyg som NuGet-paket bort de inledande nollorna. Det här beteendet orsakar ett versionsnummermatchningsfel i artefakterna som bygget skapar.
Uttryck i körningsnummer
Om du använder ett uttryck för att ange körningsnumret, kan du inte använda $(Build.BuildId), $(Build.BuildUri) eller $(Build.BuildNumber), eftersom deras värden inte har satts ännu när pipeline-uttrycken utvärderas.
Variabler i körningsnummer
Du kan använda både fördefinierade och användardefinierade variabler i ditt löpnummer. Om du till exempel definierar My.Variablekan du ange följande nummerformat. De första fyra variablerna är fördefinierade.
$(Build.DefinitionName)_$(Build.DefinitionVersion)_$(Build.RequestedFor)_$(Build.BuildId)_$(My.Variable)
Mer information om fördefinierade variabler finns i Använda fördefinierade variabler. Information om hur du definierar användarvariabler finns i Definiera variabler.
Vanliga frågor
Hur stort kan ett körningsnummer vara och vilka tecken kan jag använda?
Löpningsnummer kan vara upp till 255 tecken. Du kan inte använda tecknen ", /, \, :, <, >, ', |, ?, @eller *, och du kan inte avsluta numret med ..
Vilken tidszon uttrycks tidsvärdena för versionsnummer i?
Tidszonen är UTC.
Tidszonen är densamma som operativsystemet på den dator som kör programnivåservern.
Hur ställer jag in versionsnumret dynamiskt med villkor?
Du kan använda variabler som en del av ditt körningsnummer. I följande exempel anges variabeln why som en del av körningsnumret och dess värde ändras beroende på 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)'
Hur refererar jag till körningsnummervariabeln i ett skript?
Du kan referera till körningsnumret direkt som $(Build.BuildNumber) i skripten eller skapa en anpassad variabel som innehåller talet. Till exempel:
# Set MyRunNumber
variables:
MyRunNumber: '1.0.0-CI+$(Build.BuildNumber)'
steps:
- script: echo $(MyRunNumber)
- script: echo $(Build.BuildNumber)