Dela 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

preDeploy preDeployHook.
Fördistributionskrok för runOnce-distributionsstrategi.

deploy deployHook.
Distributionskrok för runOnce-distributionsstrategi.

routeTraffic routeTrafficHook.
Routningstrafikkrok för runOnce-distributionsstrategi.

postRouteTraffic postRouteTrafficHook.
Post route traffic hook for runOnce deployment strategy .

on onSuccessOrFailureHook.
Vid lyckad eller misslyckad hook för runOnce-distributionsstrategi.

Anmärkningar

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 deploy-kroken för distributionsjobb. Om du vill sluta ladda ned artefakter använder du - download: none eller väljer specifika artefakter att ladda ned genom att ange Ladda ned pipelineartefaktaktiviteten.

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. Normalt ö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 runOnce distributionsstrategi. 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 mot den smarthotel-dev miljön.

Anmärkning

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

Nästa exempel visar 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