Sdílet prostřednictvím


jobs.deployment.strategy.runOnce – definice

Strategie nasazení runOnce postupně nasadí změny provedením jednotlivých kroků.

runOnce:
  preDeploy: # Pre deploy hook for runOnce deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where pre deploy steps will run.
  deploy: # Deploy hook for runOnce deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where deploy steps will run.
  routeTraffic: # Route traffic hook for runOnce deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where route traffic steps will run.
  postRouteTraffic: # Post route traffic hook for runOnce deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where post route traffic steps will run.
  on: # On success or failure hook for runOnce deployment strategy.
    failure: # Runs on failure of any step.
      steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
      pool: string | pool # Pool where post on failure steps will run.
    success: # Runs on success of all of the steps.
      steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
      pool: string | pool # Pool where on success steps will run.

Definice, které odkazují na tuto definici: jobs.deployment.strategy

Vlastnosti

preDeploy preDeployHook.
háku před nasazením pro strategii nasazení runOnce.

deploy deployHook.
nasazení háku pro strategii nasazení runOnce.

routeTraffic routeTrafficHook.
směrování provozu pro strategii nasazení RunOnce.

postRouteTraffic postRouteTrafficHook.
volání provozu po směrování pro strategii nasazení runOnce.

on onSuccessOrFailureHook.
Při úspěchu nebo selhání háku pro strategii nasazení runOnce.

Poznámky

runOnce je nejjednodušší strategie nasazení, kde se spustí všechny háčky životního cyklu, konkrétně preDeploydeploy, routeTraffica postRouteTraffic. Pak se spustí on:success nebo on:failure.

Popisy háků životního cyklu

preDeploy: Slouží ke spuštění kroků, které inicializují prostředky před spuštěním nasazení aplikace.

deploy: Slouží ke spuštění kroků, které nasazují vaši aplikaci. Úloha stažení artefaktu se automaticky vloží jenom do deploy háku pro úlohy nasazení. Chcete-li zastavit stahování artefaktů, použijte - download: none nebo zvolte konkrétní artefakty ke stažení zadáním stažení úlohy artefaktu kanálu.

routeTraffic: Slouží ke spuštění kroků, které obsluhují provoz do aktualizované verze.

postRouteTraffic: Slouží ke spuštění kroků po směrování provozu. Tyto úlohy obvykle monitorují stav aktualizované verze pro definovaný interval.

on: failure nebo on: success: Slouží ke spuštění kroků pro vrácení zpět nebo vyčištění.

Příklady

Následující příklad fragment kódu YAML předvádí jednoduché použití úlohy nasazení pomocí strategie nasazení runOnce. Příklad obsahuje krok rezervace.


jobs:
  # Track deployments on the environment.
- deployment: DeployWeb
  displayName: deploy Web App
  pool:
    vmImage: ubuntu-latest
  # Creates an environment if it doesn't exist.
  environment: 'smarthotel-dev'
  strategy:
    runOnce:
      deploy:
        steps:
        - checkout: self 
        - script: echo my first deployment

Při každém spuštění této úlohy se historie nasazení zaznamenává do smarthotel-dev prostředí.

Poznámka:

  • Je také možné vytvořit prostředí s prázdnými prostředky a použít ho jako abstraktní prostředí k zaznamenání historie nasazení, jak je znázorněno v předchozím příkladu.

Další příklad ukazuje, jak kanál může odkazovat na prostředí i prostředek, které se mají použít jako cíl pro úlohu nasazení.

jobs:
- deployment: DeployWeb
  displayName: deploy Web App
  pool:
    vmImage: ubuntu-latest
  # Records deployment against bookings resource - Kubernetes namespace.
  environment: 'smarthotel-dev.bookings'
  strategy: 
    runOnce:
      deploy:
        steps:
          # No need to explicitly pass the connection details.
        - task: KubernetesManifest@0
          displayName: Deploy to Kubernetes cluster
          inputs:
            action: deploy
            namespace: $(k8sNamespace)
            manifests: |
              $(System.ArtifactsDirectory)/manifests/*
            imagePullSecrets: |
              $(imagePullSecret)
            containers: |
              $(containerRegistry)/$(imageRepository):$(tag)

Tento přístup má následující výhody:

  • Zaznamenává historii nasazení pro konkrétní prostředek v rámci prostředí, a ne zaznamenává historii všech prostředků v rámci prostředí.
  • Kroky v úloze nasazení automaticky dědí podrobnosti o připojení prostředku (v tomto případě obor názvů Kubernetes, smarthotel-dev.bookings), protože úloha nasazení je propojená s prostředím. To je užitečné v případech, kdy je stejný detail připojení nastavený pro více kroků úlohy.

Viz také