Čísla spuštění a sestavení

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Tento článek vysvětluje, jak se vytvářejí čísla sestavení a čísla spuštění služby Azure Pipelines a jak je můžete přizpůsobit ve svých kanálech.

Číslo spuštění slouží k identifikaci konkrétního spuštění kanálu nebo sestavení. Číslo buildu je synonymem čísla spuštění.

Pokud v kanálech YAML nezadáte název sestavení nebo pole Název ponecháte v klasických kanálech prázdné, vaše spuštění jako název získá jedinečné celé číslo. Můžete dát užitečnější názvy, které jsou pro váš tým smysluplnější. V názvech sestavení můžete použít kombinaci tokenů, proměnných a podtržítka.

V kanálech YAML se volá name vlastnost názvu sestavení a musí být na kořenové úrovni kanálu. Položky zadané na kořenové úrovni souboru YAML jsou vlastnosti kanálu .

Poznámka:

Vlastnost name nefunguje v souborech šablon.

Následující příklad kódu vypíše přizpůsobené číslo sestavení, jako je project_def_master_202408281.

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

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

Číslo spuštění

Výchozí hodnota čísla spuštění v Azure Pipelines je $(Date:yyyyMMdd).$(Rev:r). $(Rev:r) je speciální formát proměnné, který funguje pouze v poli čísla sestavení. Když se sestavení dokončí, pokud se v čísle buildu nezměnilo nic jiného, Rev hodnota celého čísla se zvýší o jedno číslo.

$(Rev:r) se obnoví, 1 když se změní jakákoli jiná část čísla buildu. Pokud například nakonfigurujete formát čísla buildu jako $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r), číslo buildu se resetuje, když se datum změní.

Pokud bylo MyBuild_20230621.1předchozí číslo buildu , bude následující číslo buildu v daném dni MyBuild_20230621.2. První číslo buildu následující den je MyBuild_20230622.1.

$(Rev:r) také se obnoví, 1 pokud změníte číslo buildu tak, aby označí změnu verze. Pokud je 1.0.$(Rev:r) například formát sestavení a vaše poslední číslo buildu bylo 1.0.3, pokud změníte číslo buildu na 1.1.$(Rev:r), bude další číslo 1.1.1buildu .

Příklad

Zvažte následující data pro spuštění sestavení:

  • Název projektu: Fabrikam
  • Název kanálu: CIBuild
  • Větev: main
  • ID sestavení/ID spuštění: 752
  • Datum: 6. května 2024
  • Čas: 19:07:03
  • Jedno spuštění bylo dokončeno dříve dnes.

Pokud zadáte následující formát čísla sestavení, druhé spuštění 6. května 2024 má název Fabrikam_CIBuild_main_20240506.2.

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

Tokeny

Následující tabulka ukazuje, jak se jednotlivé tokeny překládají na základě předchozího příkladu. Tyto tokeny můžete použít jenom k definování čísel spuštění. Nefungují jinde v kanálu.

Token Příklad hodnoty Notes
$(Build.DefinitionName) CIBuild Název kanálu nemůže obsahovat neplatné nebo prázdné znaky.
$(Build.BuildId) 752 $(Build.BuildId) je interní neměnné ID označované také jako ID spuštění, které je jedinečné v rámci organizace Azure DevOps.
$(DayOfMonth) 6
$(DayOfYear) 126
$(Hours) 21
$(Minutes) 7
$(Month) 5
$(Rev:r) 2 Třetí denní běh je 3a tak dále. Slouží $(Rev:r) k zajištění, že každé dokončené sestavení má jedinečný název.
$(Date:yyyyMMdd) 20240506 Můžete zadat jiné formáty kalendářních dat, například $(Date:MMddyy).
$(Seconds) 3
$(SourceBranchName) main
$(TeamProject) Fabrikam
$(Year:yy) 24
$(Year:yyyy) 2024

Důležité

Pokud chcete v čísle spuštění zobrazit předpony nuly, můžete do tokenu Rev přidat další r znaky. Zadejte $(Rev:rr) například, jestli má Rev číslo začínat 01na , 02a tak dále.

Pokud jako součást schématu číslování verzí použijete nulovou Rev nulu, mějte na paměti, že některé úlohy kanálu nebo oblíbené nástroje, jako jsou balíčky NuGet, odeberou počáteční nuly. Toto chování způsobí neshodu čísel verzí v artefaktech, které jsou vytvořeny.

Výrazy

Pokud k nastavení čísla sestavení použijete výraz, nemůžete použít některé tokeny, protože jejich hodnoty nejsou nastavené v době, kdy se výrazy vyhodnotí. Mezi tyto tokeny patří $(Build.BuildId), $(Build.BuildURL)a $(Build.BuildNumber).

Proměnné

V čísle buildu můžete použít uživatelem definované a předdefinované proměnné. Pokud například definujete My.Variable, můžete zadat následující formát čísla:

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

V předchozím příkladu jsou předdefinovány první čtyři proměnné. Informace o definování uživatelských proměnných najdete v tématu Nastavení proměnných v kanálech.

Často kladené dotazy

Jak velké může být číslo spuštění a jaké znaky můžu použít?

Čísla spuštění můžou být až 255 znaků. Nelze použít znaky ", , /, :, ><, ', |, , ?@nebo *, a nemůžete ukončit číslo číslem ..

V jakém časovém pásmu jsou hodnoty času sestavení vyjádřeny?

Časové pásmo je UTC.

Časové pásmo je stejné jako časové pásmo operačního systému počítače, na kterém běží server aplikační vrstvy.

Jak můžu nastavit číslo buildu dynamicky s podmínkami?

Proměnné můžete použít jako součást čísla spuštění. V následujícím příkladu se proměnná why používá jako součást čísla spuštění a její hodnota se mění v závislosti na hodnotě 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)'

Jak můžu odkazovat na proměnnou čísla spuštění ve skriptu?

Můžete definovat novou proměnnou, která obsahuje číslo spuštění, nebo volat číslo spuštění přímo. V následujícím příkladu je nová proměnná, $(MyRunNumber) která obsahuje číslo spuštění. Číselnou proměnnou spuštění můžete volat pomocí MyRunNumber nebo $(Build.BuildNumber).

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

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

Definování proměnných