Delen via


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.

poolzwembad.
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.

variablesvariabelen.
Fasespecifieke variabelen.

jobstaken.
Taken die het podium vormen.

lockBehavior Tekenreeks.
Gedragsvergrendelingsaanvragen uit deze fase moeten worden weergegeven in relatie tot andere exclusieve vergrendelingsaanvragen. sequentiële | runLatest.

Opmerkingen

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 geen lockBehavior 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:

  1. Schakel de exclusieve vergrendelingscontrole in voor de omgeving (of een andere beveiligde resource).
  2. 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.