definice stages.stage
Fáze jsou kolekcí souvisejících úloh. Ve výchozím nastavení se fáze spouští sekvenčně. Každá fáze začíná až po dokončení předchozí fáze, pokud není prostřednictvím dependsOn
vlastnosti stanoveno jinak.
stages:
- stage: string # Required as first property. ID of the stage.
displayName: string # Human-readable name for the stage.
pool: string | pool # Pool where jobs in this stage will run unless otherwise specified.
dependsOn: string | [ string ] # Any stages which must complete before this one.
condition: string # Evaluate this condition expression to determine whether to run this stage.
variables: variables | [ variable ] # Stage-specific variables.
jobs: [ job | deployment | template ] # Jobs which make up the stage.
lockBehavior: string # Behavior lock requests from this stage should exhibit in relation to other exclusive lock requests.
templateContext: # Stage related information passed from a pipeline when extending a template.
stages:
- stage: string # Required as first property. ID of the stage.
displayName: string # Human-readable name for the stage.
pool: string | pool # Pool where jobs in this stage will run unless otherwise specified.
dependsOn: string | [ string ] # Any stages which must complete before this one.
condition: string # Evaluate this condition expression to determine whether to run this stage.
variables: variables | [ variable ] # Stage-specific variables.
jobs: [ job | deployment | template ] # Jobs which make up the stage.
Definice, které odkazují na tuto definici: fáze
Vlastnosti
stage
Řetězec. Požadováno jako první vlastnost.
ID fáze
displayName
Řetězec.
Název fáze čitelný pro člověka.
pool
bazénu.
Fond, ve kterém se budou úlohy v této fázi spouštět, pokud není uvedeno jinak.
dependsOn
string | seznam řetězců.
Všechny fáze, které musí být dokončeny před touto fází. Ve výchozím nastavení se fáze spouštějí sekvenčně v pořadí definovaném v kanálu. Zadejte dependsOn: []
pro fázi, pokud by neměla záviset na předchozí fázi v kanálu.
condition
Řetězec.
Vyhodnocením tohoto výrazu podmínky určete, zda se má tato fáze spustit.
variables
proměnné.
Proměnné specifické pro jednotlivé fáze.
jobs
pracovních míst.
Úlohy, které tvoří fázi.
lockBehavior
Řetězec.
Požadavky na uzamčení chování z této fáze by se měly projevit ve vztahu k ostatním žádostem o výhradní uzamčení. sekvenční | runLatest.
templateContext
templateContext.
Informace související s fází předávané z kanálu při rozšiřování šablony Další informace o templateContext
nástroji najdete v tématech Šablony rozšířených kanálů YAML se teď dají předávat kontextové informace pro fáze, úlohy a nasazení aŠablony – Předávání vlastností šablonám pomocí templateContext.
Poznámky
Další informace o templateContext
nástroji najdete v tématech Šablony rozšířených kanálů YAML se teď dají předávat kontextové informace pro fáze, úlohy a nasazení aŠablony – Předávání vlastností šablonám pomocí templateContext.
Pomocí kontrol schválení můžete ručně určit, kdy se má fáze spustit. Tyto kontroly se běžně používají k řízení nasazení do produkčních prostředí.
Kontroly jsou mechanismus, který má vlastník prostředku k dispozici. Řídí, kdy fáze v kanálu spotřebovává prostředek. Jako vlastník prostředku, jako je prostředí, můžete definovat kontroly, které se vyžadují před zahájením fáze, která prostředek využívá.
V současné době se v prostředích podporují kontroly ručního schvalování. Další informace najdete v tématu Schválení.
Výhradní zámek
V kanálech YAML se kontroly používají k řízení provádění fází na chráněných prostředcích. Jednou z běžných kontrol, které můžete použít, je kontrola výhradního uzamčení. Tato kontrola umožňuje pokračovat pouze jedním spuštěním z kanálu. Když se do prostředí současně pokusí nasadit více spuštění, kontrola zruší všechna stará spuštění a povolí nasazení nejnovějšího spuštění.
Chování kontroly výhradního zámku můžete nakonfigurovat pomocí lockBehavior
vlastnosti, která má dvě hodnoty:
runLatest
– Zámek prostředku získá jenom nejnovější spuštění. Toto je výchozí hodnota, pokud je zadáno nelockBehavior
.sequential
– Všechna spuštění postupně získávají zámek chráněného prostředku.
Zrušení starých spuštění je dobrý přístup, pokud jsou vydané verze kumulativní a obsahují všechny změny kódu z předchozích spuštění. Existují však kanály, ve kterých nejsou změny kódu kumulativní. lockBehavior
Konfigurací vlastnosti můžete povolit, aby všechna spuštění pokračovala a nasadí se do prostředí postupně, nebo zachovat předchozí chování zrušení starých spuštění a povolení pouze nejnovějších. Hodnota sequential
znamená, že všechna spuštění získávají zámek k chráněnému prostředku postupně. Hodnota runLatest
znamená, že zámek k prostředku získá pouze nejnovější spuštění.
Pokud chcete použít kontrolu výhradního zámku s nasazeními sequential
nebo runLatest
, postupujte takto:
- Povolte kontrolu výhradního zámku v prostředí (nebo jiném chráněném prostředku).
- V souboru YAML pro kanál zadejte novou vlastnost s názvem
lockBehavior
. Tuto možnost je možné zadat pro celý kanál nebo pro danou fázi:
Nastavení ve fázi:
stages:
- stage: A
lockBehavior: sequential
jobs:
- job: Job
steps:
- script: Hey!
Nastavení v kanálu:
lockBehavior: runLatest
stages:
- stage: A
jobs:
- job: Job
steps:
- script: Hey!
Příklady
Tento příklad spouští tři fáze, jednu po druhé. Střední fáze spouští dvě úlohy paralelně.
stages:
- stage: Build
jobs:
- job: BuildJob
steps:
- script: echo Building!
- stage: Test
jobs:
- job: TestOnWindows
steps:
- script: echo Testing on Windows!
- job: TestOnLinux
steps:
- script: echo Testing on Linux!
- stage: Deploy
jobs:
- job: Deploy
steps:
- script: echo Deploying the code!
Tento příklad spouští dvě fáze paralelně. Z důvodu stručnosti jsou úlohy a kroky vynechány.
stages:
- stage: BuildWin
displayName: Build for Windows
- stage: BuildMac
displayName: Build for Mac
dependsOn: [] # by specifying an empty array, this stage doesn't depend on the stage before it
Viz také
Přečtěte si další informace o fázích, podmínkách a proměnných.