Dela via


stages.stage definition

Faser är en samling relaterade jobb. Som standard körs faserna sekventiellt. Varje steg startar först efter att föregående steg har slutförts om inget annat anges via dependsOn egenskapen .

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.

Definitioner som refererar till den här definitionen: faser

Egenskaper

stage Sträng. Krävs som första egenskap.
ID för scenen.

displayName Sträng.
Läsbart namn för scenen.

poolpool.
Pool där jobb i det här steget körs om inget annat anges.

dependsOn sträng | stränglista.
Alla faser som måste slutföras före den här. Som standard körs faserna sekventiellt i den ordning som definieras i pipelinen. Ange dependsOn: [] för en fas om den inte ska vara beroende av föregående steg i pipelinen.

condition Sträng.
Utvärdera det här villkorsuttrycket för att avgöra om den här fasen ska köras.

variablesvariabler.
Fasspecifika variabler.

jobsjobb.
Jobb som utgör fasen.

lockBehavior Sträng.
Begäranden om beteendelås från den här fasen bör visas i förhållande till andra begäranden om exklusivt lås. sekventiell | runLatest.

templateContext templateContext.
Mellanlagra relaterad information som skickas från en pipeline när du utökar en mall. Mer information om templateContextfinns i Utökade YAML-pipelinesmallar kan nu skickas kontextinformation för faser, jobb och distributioner och mallar – Använd templateContext för att skicka egenskaper till mallar.

Kommentarer

Använd godkännandekontroller för att manuellt styra när en fas ska köras. Dessa kontroller används ofta för att styra distributioner till produktionsmiljöer.

Kontroller är en mekanism som är tillgänglig för resursägaren. De styr när en fas i en pipeline förbrukar en resurs. Som ägare till en resurs som en miljö kan du definiera kontroller som krävs innan en fas som förbrukar resursen kan starta.

För närvarande stöds manuella godkännandekontroller i miljöer. Mer information finns i Godkännanden.

Exklusivt lås

I YAML-pipelines används kontroller för att styra körningen av faser på skyddade resurser. En av de vanliga kontrollerna som du kan använda är en exklusiv låskontroll. Med den här kontrollen kan endast en enda körning från pipelinen fortsätta. När flera körningar försöker distribuera till en miljö samtidigt avbryter kontrollen alla gamla körningar och tillåter att den senaste körningen distribueras.

Du kan konfigurera beteendet för den exklusiva låskontrollen med hjälp av lockBehavior egenskapen , som har två värden:

  • runLatest – Endast den senaste körningen hämtar låset till resursen. Detta är standardvärdet om inget lockBehavior anges.
  • sequential – Alla körningar hämtar låset sekventiellt till den skyddade resursen.

Att avbryta gamla körningar är en bra metod när dina versioner är kumulativa och innehåller alla kodändringar från tidigare körningar. Det finns dock vissa pipelines där kodändringar inte är kumulativa. Genom att lockBehavior konfigurera egenskapen kan du välja att tillåta att alla körningar fortsätter och distribueras sekventiellt till en miljö, eller bevara det tidigare beteendet att avbryta gamla körningar och bara tillåta det senaste. Värdet sequential innebär att alla körningar hämtar låset sekventiellt till den skyddade resursen. Värdet runLatest innebär att endast den senaste körningen hämtar låset till resursen.

Följ dessa steg om du vill använda exklusiv låskontroll med sequential distributioner eller runLatest:

  1. Aktivera den exklusiva låskontrollen i miljön (eller en annan skyddad resurs).
  2. I YAML-filen för pipelinen anger du en ny egenskap med namnet lockBehavior. Detta kan anges för hela pipelinen eller för en viss fas:

Ställ in på en scen:

stages:
- stage: A
  lockBehavior: sequential
  jobs:
  - job: Job
    steps:
    - script: Hey!

Ange i pipelinen:

lockBehavior: runLatest
stages:
- stage: A
  jobs:
  - job: Job
    steps:
    - script: Hey!

Exempel

Det här exemplet kör tre steg, en efter en. Mellansteget kör två jobb parallellt.

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!

Det här exemplet kör två faser parallellt. Av utrymmesskäl utelämnas jobben och stegen.

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

Se även

Läs mer om faser, villkor och variabler.