Sdílet prostřednictvím


definice jobs.deployment.strategy.runOnce

Strategie nasazení runOnce provede změny provedením jednotlivých kroků jednou.

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

preDeploypreDeployHook.
Háček před nasazením pro strategii nasazení runOnce

deploydeployHook.
Nasazení háku pro strategii nasazení runOnce

routeTrafficrouteTrafficHook.
Háček směrování provozu pro strategii nasazení runOnce

postRouteTrafficpostRouteTrafficHook.
Háček provozu po směrování pro strategii nasazení runOnce

ononSuccessOrFailureHook.
Při úspěšné nebo neúspěšné háku pro strategii nasazení runOnce

Poznámky

runOnce je nejjednodušší strategie nasazení, ve které se všechny háky životního cyklu, konkrétně preDeploydeploy, routeTraffica postRouteTraffic, spouští jednou. Pak se provede buď 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é nasadí vaši aplikaci. Úloha stažení artefaktu se automaticky vloží jenom do háku deploy pro úlohy nasazení. Pokud chcete zastavit stahování artefaktů, použijte - download: none nebo zvolte konkrétní artefakty ke stažení zadáním úlohy Stáhnout artefakt 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 po definovaný interval.

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

Příklady

Následující příklad fragmentu kódu YAML ukazuje jednoduché použití úlohy nasazení pomocí runOnce strategie nasazení. Příklad obsahuje krok pokladny.


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 zaznamenává historie nasazení v 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 záznamu historie nasazení, jak je znázorněno v předchozím příkladu.

Další příklad ukazuje, jak může kanál odkazovat na prostředí i prostředek, který se má 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í u konkrétního prostředku v rámci prostředí, nikoli 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.bookingsprotož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é