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.
pool
pool.
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.
variables
variabler.
Fasspecifika variabler.
jobs
jobb.
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 templateContext
finns 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
Mer information om templateContext
finns 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.
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 ingetlockBehavior
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
:
- Aktivera den exklusiva låskontrollen i miljön (eller en annan skyddad resurs).
- 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