definitie jobs.deployment.strategy.runOnce
De implementatiestrategie runOnce implementeert wijzigingen door elk van de stappen één keer uit te voeren.
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.
Definities die naar deze definitie verwijzen: jobs.deployment.strategy
Eigenschappen
preDeploy
preDeployHook.
Pre deploy hook for runOnce-implementatiestrategie.
deploy
deployHook.
Implementeer hook voor de implementatiestrategie runOnce.
routeTraffic
routeTrafficHook.
Route verkeershook voor runOnce-implementatiestrategie.
postRouteTraffic
postRouteTrafficHook.
Postroute verkeershook voor runOnce-implementatiestrategie.
on
onSuccessOrFailureHook.
Bij geslaagde of mislukte hook voor runOnce-implementatiestrategie.
Opmerkingen
runOnce
is de eenvoudigste implementatiestrategie waarbij alle levenscyclushaken, namelijk preDeploy
deploy
, routeTraffic
en postRouteTraffic
, eenmaal worden uitgevoerd. Vervolgens wordt of on:
success
on:
failure
uitgevoerd.
Beschrijvingen van levenscyclushook
preDeploy
: wordt gebruikt om stappen uit te voeren waarmee resources worden geïnitialiseerd voordat de implementatie van de toepassing wordt gestart.
deploy
: wordt gebruikt om stappen uit te voeren waarmee uw toepassing wordt geïmplementeerd. De taak voor het downloaden van artefacten wordt alleen automatisch geïnjecteerd in de deploy
hook voor implementatietaken. Als u wilt stoppen met het downloaden van artefacten, gebruikt - download: none
of kiest u specifieke artefacten die u wilt downloaden door de taak Pijplijnartefact downloaden op te geven.
routeTraffic
: Wordt gebruikt om stappen uit te voeren die het verkeer naar de bijgewerkte versie verwerken.
postRouteTraffic
: wordt gebruikt om de stappen uit te voeren nadat het verkeer is gerouteerd. Normaal gesproken controleren deze taken de status van de bijgewerkte versie voor het gedefinieerde interval.
on: failure
of on: success
: wordt gebruikt om stappen uit te voeren voor terugdraaiacties of opschonen.
Voorbeelden
In het volgende voorbeeld van een YAML-fragment ziet u een eenvoudig gebruik van een implementatietaak met behulp van de runOnce
implementatiestrategie. Het voorbeeld bevat een stap voor uitchecken.
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
Bij elke uitvoering van deze taak wordt de implementatiegeschiedenis vastgelegd in de smarthotel-dev
omgeving.
Notitie
- Het is ook mogelijk om een omgeving met lege resources te maken en deze te gebruiken als een abstracte shell om de implementatiegeschiedenis vast te leggen, zoals weergegeven in het vorige voorbeeld.
In het volgende voorbeeld ziet u hoe een pijplijn kan verwijzen naar zowel een omgeving als een resource die moet worden gebruikt als het doel voor een implementatietaak.
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)
Deze aanpak heeft de volgende voordelen:
- Registreert de implementatiegeschiedenis voor een specifieke resource in de omgeving, in plaats van de geschiedenis van alle resources in de omgeving vast te leggen.
- Stappen in de implementatietaak nemen automatisch de verbindingsgegevens van de resource over (in dit geval een Kubernetes-naamruimte,
smarthotel-dev.bookings
), omdat de implementatietaak is gekoppeld aan de omgeving. Dit is handig in de gevallen waarin dezelfde verbindingsdetails zijn ingesteld voor meerdere stappen van de taak.