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.
Distribuera hook för runOnce-distributionsstrategi.
routeTraffic
routeTrafficHook.
Dirigera trafikkroken för distributionsstrategin runOnce.
postRouteTraffic
postRouteTrafficHook.
Efter routningstrafikkroken för runOnce-distributionsstrategin.
on
onSuccessOrFailureHook.
Vid lyckad eller misslyckad hook för runOnce distributionsstrategi.
Kommentarer
runOnce
är den enklaste distributionsstrategin där alla livscykelkrokar, nämligen preDeploy
deploy
, routeTraffic
och 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.