Sdílet prostřednictvím


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

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

Jedinečné číslo spuštění nebo číslo sestavení identifikuje každé spuštění kanálu nebo sestavení Azure Pipelines. Tento článek vysvětluje strukturu tohoto čísla a způsob, jak ho můžete přizpůsobit tak, aby byl pro váš tým užitečnější nebo smysluplnější.

Pokud v kanálech YAML nezadáte název buildu nebo necháte pole Název nebo Formát čísla buildu prázdné v klasických kanálech, každé spuštění získá jako svůj název jedinečné celé číslo. Názvy sestavení můžou používat jiné znaky, tokeny a proměnné. Čísla spuštění a sestavení můžete přizpůsobit pomocí vzorů pojmenování, speciálních tokenů a předdefinovaných nebo uživatelem definovaných proměnných.

Konfigurace čísla sestavení

V klasických kanálech můžete přizpůsobit formát čísla buildu v části Možnosti v definici kanálu. V kanálech YAML můžete přizpůsobit formát čísla spuštění pomocí name vlastnosti na úrovni kanálu souboru YAML. Vlastnost name není podporována v šablonách ani fázích.

Následující příklad nastaví vlastní formát pro číslo spuštění, který vytvoří číslo sestavení, takto MyProject_MyBuild_main_20240828.1.

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

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

Číslo spuštění

Výchozí hodnota pro číslo spuštění služby Azure Pipelines je $(Date:yyyyMMdd).$(Rev:r). Proměnná $(Rev:r) revize funguje pouze v poli čísla sestavení. Pokud se sestavení dokončí a nic jiného v čísle sestavení se nezmění, zvyšuje se hodnota jako celé číslo Rev o jednu.

$(Rev:r) se obnoví na 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 předchozí číslo sestavení MyBuild_20230621.1, bude následující číslo sestavení MyBuild_20230621.2. První číslo buildu následujícího dne je MyBuild_20230622.1.

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

Následující formát čísla sestavení vytvoří název Fabrikam_CIBuild_main_20240506.2 pro druhé spuštění 6. května 2024.

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

Tokeny čísla buildu se vyřeší následovně:

  • Název projektu: Fabrikam
  • Název definice sestavení: CIBuild
  • Větev: main
  • Datum: 6. května 2024
  • Číslo spuštění pro tento den: 2

Spuštění číselných tokenů

Následující tabulka ukazuje, jak se vyřeší počet tokenů spuštění. Tyto tokeny můžete použít jenom k definování čísel spuštění. Nefungují jinde v potrubí.

Žeton Příklad hodnoty Poznámky
$(Build.DefinitionName) CIBuild Název sestavení, který nemůže obsahovat neplatné nebo prázdné znaky.
$(Build.BuildId) 752 Interní neměnné ID označované také jako Run IDjedinečné v organizaci Azure DevOps.
$(Date:yyyyMMdd) 20240506 Formát datumu. Můžete také zadat jiné formáty kalendářních dat, například $(Date:MMddyy).
$(DayOfMonth) 6
$(DayOfYear) 126
$(Hours) 21
$(Minutes) 7
$(Month) 5
$(Rev:r) 2 Pozice v pořadí spuštění v daný den. Slouží $(Rev:r) k zajištění, že každé dokončené sestavení má jedinečný název.
$(Seconds) 3
$(SourceBranchName) hlavní
$(TeamProject) Fabrikam
$(Year:yy) dvacet čtyři
$(Year:yyyy) 2024

Důležité

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

Pokud však jako součást schématu číslování verzí použijete nulu s úvodními nulami Rev, některé úlohy v procesním kanálu nebo oblíbené nástroje, jako například balíčky NuGet, automaticky odstraní tyto úvodní nuly. Toto chování způsobí neshodu čísel verzí u artefaktů, které sestavení vytvoří.

Výrazy v kontextech čísel spuštění

Pokud k nastavení čísla spuštění použijete výraz, nemůžete použít symboly $(Build.BuildId), $(Build.BuildUri) ani $(Build.BuildNumber) znaky, protože jejich hodnoty ještě nejsou nastavené v okamžiku vyhodnocení výrazů kanálu.

Proměnné v číslech spuštění

V čísle spuštění můžete použít předdefinované i uživatelem definované proměnné. Pokud například definujete My.Variable, můžete zadat následující číselný formát. První čtyři proměnné jsou předdefinované.

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

Další informace o předdefinovaných proměnných najdete v tématu Použití předdefinovaných proměnných. Informace o tom, jak definovat proměnné uživatele, naleznete v tématu Definování proměnných.

časté otázky

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

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

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 operační systém 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 je proměnná why nastavena jako součást čísla spuštění a její hodnota se mění v závislosti na .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 použít proměnnou číslo spuštění ve skriptu?

Na číslo spuštění můžete odkazovat přímo jako $(Build.BuildNumber) ve skriptech nebo můžete vytvořit vlastní proměnnou, která obsahuje číslo. Například:

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

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