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.

poolbazé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.

variablesproměnné.
Proměnné specifické pro jednotlivé fáze.

jobspracovní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 templateContextná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

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 ne lockBehavior .
  • 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:

  1. Povolte kontrolu výhradního zámku v prostředí (nebo jiném chráněném prostředku).
  2. 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.