Konfigurace čísel spuštění nebo sestavení

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

Způsob číslování spuštění kanálu můžete přizpůsobit. Výchozí hodnota pro číslo spuštění je $(Date:yyyyMMdd).$(Rev:r).

V Azure DevOps $(Rev:r) je speciální formát proměnných, který funguje jenom v poli čísla sestavení. Pokud se po dokončení sestavení nic jiného v čísle buildu nezměnilo, zvýší se Rev celočíselná hodnota o jedno číslo.

$(Rev:r) při změně části čísla buildu se obnoví. Pokud jste například nakonfigurovali formát čísla buildu jako $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r), číslo buildu se resetuje, když se datum změní následující den. Pokud je MyBuild_20230621.1vaše číslo buildu, bude následující číslo buildu v daném dni MyBuild_20230621.2. Další den je MyBuild_20230622.1číslo buildu .

Pokud je 1.0.$(Rev:r)formát čísla buildu , číslo buildu se resetuje, když 1.0.1 změníte část čísla. Pokud bylo například vaše poslední číslo 1.0.3buildu a vy změníte číslo buildu tak, aby 1.1.$(Rev:r) indikovalo změnu verze, je další číslo 1.1.1buildu .

V YAML je tato vlastnost volána name a musí být na kořenové úrovni kanálu.

Poznámka:

Položky zadané na kořenové úrovni souboru YAML jsou vlastnosti kanálu .

Pokud ho nezadáte, zobrazí se jako jeho název jedinečné celé číslo. Můžete dát mnohem užitečnější názvy, které jsou pro váš tým smysluplné. Můžete použít kombinaci tokenů, proměnných a podtržítka. Vlastnost name nefunguje v souborech šablon.

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

steps:
  - script: echo '$(Build.BuildNumber)' # outputs customized build number like project_def_master_20200828.1

Buildy YAML zatím nejsou v TFS k dispozici.

Příklad

V tuto chvíli se spustí spuštění:

  • Název projektu: Fabrikam

  • Název kanálu: CIBuild

  • Větev: main

  • ID sestavení/ID spuštění: 752

  • Datum: 5. května 2019.

  • Čas: 19:07:03.

  • Jedno spuštění bylo dokončeno dříve dnes.

Pokud zadáte tento formát čísla buildu:

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

Druhý běh v tomto dni by se pojmenoval: Fabrikam_CIBuild_main_20190505.2

Tokeny

Následující tabulka ukazuje, jak se jednotlivé tokeny řeší na základě předchozího příkladu. Tyto tokeny můžete použít pouze k definování čísla spuštění; nefungují nikde jinde ve vašem kanálu.

Token Příklad hodnoty nahrazení
$(Build.DefinitionName) CIBuild

Poznámka: Název kanálu nesmí obsahovat neplatné nebo prázdné znaky.
$(Build.BuildId) 752

$(Build.BuildId) je interní neměnné ID, které se také označuje jako ID spuštění. Je jedinečný v celé organizaci.
$(DayOfMonth) 5
$(DayOfYear) 217
$(Hours) 21
$(Minutes) 7
$(Month) 8
$(Rev:r) 2 (Třetí spuštění je 3 atd.)

Pomocí $(Rev:r) se ujistěte, že má každé dokončené sestavení jedinečný název. Když se sestavení spustí, nic jiného v čísle buildu se nezmění, integerová hodnota Rev se zvýší o jedno číslo.

Pokud chcete v čísle zobrazit předpony nuly, můžete přidat další znaky r . Pokud například chcete, aby číslo Rev začínalo číslem 01, 02 atd., zadejte $(Rev:rr ). Pokud jako součást schématu číslování verzí použijete nulovou hodnotu Rev, mějte na paměti, že některé úlohy kanálu nebo oblíbené nástroje, jako jsou balíčky NuGet, odeberou úvodní nuly, což způsobí neshodu čísel verzí v artefaktech, které jsou vytvořeny.
$(Date:yyyyMMdd) 20090824

Můžete zadat jiné formáty kalendářních dat, například $(Date:MMddyy).
$(Seconds) 3
$(SourceBranchName) main
$(TeamProject) Fabrikam
$(Year:yy) 09
$(Year:yyyy) 2009

Proměnné

Můžete také použít uživatelem definované a předdefinované proměnné, které mají ve vašem čísle obor All. Pokud jste například definovali My.Variable, můžete zadat následující formát čísla:

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

První čtyři proměnné jsou předdefinované. My.Variable je definována vámi na kartě proměnných.

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ě vyhodnocení výrazů. Mezi tyto tokeny patří $(Build.BuildId), $(Build.BuildURL)a $(Build.BuildNumber).

Často kladené dotazy

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

Spuštění může mít maximálně 255 znaků. Mezi nepovolené znaky patří ", , /, :, <, >', |, , ?, @, a *. Nemůžeš skončit s ..

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

Č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 používáte server aplikační vrstvy.

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

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

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


steps:
- script: echo $(MyRunNumber) # display MyRunNumber
- script: echo $(Build.BuildNumber) #display Run Number

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

Proměnné můžete použít jako součást čísla spuštění. V tomto příkladu se proměnná why změní v závislosti na Build.Reason hodnotě a používá se jako součást čísla spuštění.

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