definitie van stages.stage
Fasen zijn een verzameling gerelateerde taken. Fasen worden standaard opeenvolgend uitgevoerd. Elke fase begint pas nadat de vorige fase is voltooid, tenzij anders is opgegeven via de dependsOn
eigenschap.
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.
Definities die naar deze definitie verwijzen: fasen
Eigenschappen
stage
Tekenreeks. Vereist als eerste eigenschap.
Id van de fase.
displayName
Tekenreeks.
Door mensen leesbare naam voor het podium.
pool
zwembad.
Pool waarin taken in deze fase worden uitgevoerd, tenzij anders aangegeven.
dependsOn
tekenreeks | tekenreekslijst.
Alle fasen die vóór deze fase moeten worden voltooid. Fasen worden standaard opeenvolgend uitgevoerd in de volgorde die in de pijplijn is gedefinieerd. Geef dependsOn: []
op voor een fase als deze niet afhankelijk moet zijn van de vorige fase in de pijplijn.
condition
Tekenreeks.
Evalueer deze voorwaardeexpressie om te bepalen of deze fase moet worden uitgevoerd.
variables
variabelen.
Fasespecifieke variabelen.
jobs
taken.
Taken die het podium vormen.
lockBehavior
Tekenreeks.
Gedragsvergrendelingsaanvragen uit deze fase moeten worden weergegeven in relatie tot andere exclusieve vergrendelingsaanvragen. sequentiële | runLatest.
templateContext
templateContext.
Fasegerelateerde informatie die vanuit een pijplijn wordt doorgegeven bij het uitbreiden van een sjabloon. templateContext
Zie Extended YAML Pipelines templates can now be passed context information for stages, jobs, and deployments (Uitgebreide YAML Pipelines-sjablonen kunnen nu worden doorgegeven voor fasen, taken en implementaties) enSjablonen - TemplateContext gebruiken om eigenschappen door te geven aan sjablonen.
Opmerkingen
templateContext
Zie Extended YAML Pipelines templates can now be passed context information for stages, jobs, and deployments (Uitgebreide YAML Pipelines-sjablonen kunnen nu worden doorgegeven voor fasen, taken en implementaties) enSjablonen - TemplateContext gebruiken om eigenschappen door te geven aan sjablonen.
Gebruik goedkeuringscontroles om handmatig te bepalen wanneer een fase moet worden uitgevoerd. Deze controles worden vaak gebruikt voor het beheren van implementaties in productieomgevingen.
Controles zijn een mechanisme dat beschikbaar is voor de resource-eigenaar. Ze bepalen wanneer een fase in een pijplijn een resource verbruikt. Als eigenaar van een resource, zoals een omgeving, kunt u controles definiëren die vereist zijn voordat een fase die de resource verbruikt, kan worden gestart.
Op dit moment worden handmatige goedkeuringscontroles ondersteund in omgevingen. Zie Goedkeuringen voor meer informatie.
Exclusieve vergrendeling
In YAML-pijplijnen worden controles gebruikt om de uitvoering van fasen op beveiligde resources te beheren. Een van de algemene controles die u kunt gebruiken, is een exclusieve vergrendelingscontrole. Met deze controle kan slechts één uitvoering vanuit de pijplijn worden uitgevoerd. Wanneer meerdere uitvoeringen tegelijkertijd proberen te implementeren in een omgeving, worden alle oude uitvoeringen geannuleerd en kan de meest recente uitvoering worden geïmplementeerd.
U kunt het gedrag van de exclusieve vergrendelingscontrole configureren met behulp van de lockBehavior
eigenschap, die twee waarden heeft:
runLatest
- Alleen de meest recente uitvoering verkrijgt de vergrendeling voor de resource. Dit is de standaardwaarde als er geenlockBehavior
is opgegeven.sequential
- Alle uitvoeringen verkrijgen de vergrendeling sequentieel naar de beveiligde resource.
Het annuleren van oude uitvoeringen is een goede aanpak wanneer uw releases cumulatief zijn en alle codewijzigingen van eerdere uitvoeringen bevatten. Er zijn echter enkele pijplijnen waarin codewijzigingen niet cumulatief zijn. Door de lockBehavior
eigenschap te configureren, kunt u ervoor kiezen om alle uitvoeringen sequentieel te laten doorgaan en in een omgeving te implementeren, of het vorige gedrag van het annuleren van oude uitvoeringen en het toestaan van alleen de meest recente uitvoeringen behouden. Een waarde van sequential
impliceert dat alle uitvoeringen de vergrendeling sequentieel verkrijgen voor de beveiligde resource. Een waarde van runLatest
impliceert dat alleen de meest recente uitvoering de vergrendeling voor de resource verkrijgt.
Als u exclusieve vergrendelingscontrole wilt gebruiken met sequential
implementaties of runLatest
, voert u de volgende stappen uit:
- Schakel de exclusieve vergrendelingscontrole in voor de omgeving (of een andere beveiligde resource).
- Geef in het YAML-bestand voor de pijplijn een nieuwe eigenschap op met de naam
lockBehavior
. Dit kan worden opgegeven voor de hele pijplijn of voor een bepaalde fase:
Instellen op een podium:
stages:
- stage: A
lockBehavior: sequential
jobs:
- job: Job
steps:
- script: Hey!
Instellen voor de pijplijn:
lockBehavior: runLatest
stages:
- stage: A
jobs:
- job: Job
steps:
- script: Hey!
Voorbeelden
In dit voorbeeld worden drie fasen uitgevoerd, de ene na de andere. In de middelste fase worden twee taken parallel uitgevoerd.
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!
In dit voorbeeld worden twee fasen parallel uitgevoerd. Kortheidshalve worden de taken en stappen weggelaten.
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
Zie ook
Meer informatie over fasen, voorwaarden en variabelen.