Share via


jobs.deployment.strategy.runOnce-definition

Distributionsstrategin runOnce distribuerar ändringar genom att köra vart och ett av stegen en gång.

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.

Definitioner som refererar till den här definitionen: jobs.deployment.strategy

Egenskaper

preDeploypreDeployHook.
Fördistributionskrok för runOnce-distributionsstrategi.

deploydeployHook.
Distribuera hook för runOnce-distributionsstrategi.

routeTrafficrouteTrafficHook.
Dirigera trafikkroken för distributionsstrategin runOnce.

postRouteTrafficpostRouteTrafficHook.
Efter routningstrafikkroken för runOnce-distributionsstrategin.

ononSuccessOrFailureHook.
Vid lyckad eller misslyckad hook för runOnce distributionsstrategi.

Kommentarer

runOnce är den enklaste distributionsstrategin där alla livscykelkrokar, nämligen preDeploydeploy, routeTrafficoch postRouteTraffic, körs en gång. Sedan körs antingen on:success eller on:failure .

Beskrivningar av livscykelkrokar

preDeploy: Används för att köra steg som initierar resurser innan programdistributionen startar.

deploy: Används för att köra steg som distribuerar ditt program. Ladda ned artefaktaktivitet matas bara in automatiskt i kroken deploy för distributionsjobb. Om du vill sluta ladda ned artefakter använder - download: none eller väljer du specifika artefakter att ladda ned genom att ange ladda ned pipelineartefaktaktivitet.

routeTraffic: Används för att köra steg som hanterar trafiken till den uppdaterade versionen.

postRouteTraffic: Används för att köra stegen när trafiken har dirigerats. Vanligtvis övervakar dessa uppgifter hälsotillståndet för den uppdaterade versionen för definierat intervall.

on: failure eller on: success: Används för att köra steg för återställningsåtgärder eller rensning.

Exempel

I följande exempel visar YAML-kodfragmentet en enkel användning av ett distributionsjobb med hjälp av distributionsstrategin runOnce . Exemplet innehåller ett utcheckningssteg.


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

För varje körning av det här jobbet registreras distributionshistoriken smarthotel-dev mot miljön.

Anteckning

  • Det går också att skapa en miljö med tomma resurser och använda den som ett abstrakt gränssnitt för att registrera distributionshistorik, som du ser i föregående exempel.

I nästa exempel visas hur en pipeline kan referera till både en miljö och en resurs som ska användas som mål för ett distributionsjobb.

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)

Den här metoden har följande fördelar:

  • Registrerar distributionshistorik för en specifik resurs i miljön, i stället för att registrera historiken för alla resurser i miljön.
  • Steg i distributionsjobbet ärver automatiskt anslutningsinformationen för resursen (i det här fallet ett Kubernetes-namnområde, smarthotel-dev.bookings), eftersom distributionsjobbet är länkat till miljön. Detta är användbart i de fall där samma anslutningsinformation har angetts för flera steg i jobbet.

Se även