définition jobs.deployment.strategy.runOnce
La stratégie de déploiement runOnce déploie les modifications en exécutant chacune de ses étapes une fois.
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.
Définitions qui font référence à cette définition : jobs.deployment.strategy
Propriétés
preDeploy
preDeployHook.
Pré-déploiement du hook pour la stratégie de déploiement runOnce.
deploy
deployHook.
Déployer le hook pour la stratégie de déploiement runOnce.
routeTraffic
routeTrafficHook.
Router le hook de trafic pour la stratégie de déploiement runOnce.
postRouteTraffic
postRouteTrafficHook.
Hook de trafic post-routage pour la stratégie de déploiement runOnce.
on
onSuccessOrFailureHook.
En cas de réussite ou d’échec de la stratégie de déploiement runOnce.
Notes
runOnce
est la stratégie de déploiement la plus simple, dans laquelle tous les hooks de cycle de vie, à savoir preDeploy
deploy
, routeTraffic
et postRouteTraffic
, sont exécutés une seule fois. Ensuite, on:
success
ou on:
failure
est exécuté.
Descriptions des hooks de cycle de vie
preDeploy
: Utilisé pour exécuter les étapes qui initialisent les ressources avant le démarrage du déploiement de l’application.
deploy
: Utilisé pour exécuter les étapes qui déploient votre application. La tâche de téléchargement des artefacts est injectée automatiquement uniquement dans le hook deploy
pour les travaux de déploiement. Pour arrêter le téléchargement d’artefacts, utilisez - download: none
ou choisissez des artefacts spécifiques à télécharger en spécifiant la tâche Télécharger un artefact de pipeline.
routeTraffic
: Utilisé pour exécuter les étapes qui servent le trafic à la version mise à jour.
postRouteTraffic
: Utilisé pour exécuter les étapes après le routage du trafic. En règle générale, ces tâches supervisent l’intégrité de la version mise à jour pendant une période définie.
on: failure
ou on: success
: Utilisé pour exécuter les étapes de nettoyage ou des actions de restauration.
Exemples
L’exemple d’extrait de code YAML suivant présente une utilisation simple d’un travail de déploiement à l’aide de la runOnce
stratégie de déploiement. L’exemple inclut une étape de validation.
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
Avec chaque exécution de ce travail, l’historique de déploiement est enregistré sur l’environnement smarthotel-dev
.
Notes
- Il est également possible de créer un environnement avec des ressources vides et de l’utiliser comme interpréteur de commandes abstrait pour enregistrer l’historique de déploiement, comme illustré dans l’exemple précédent.
L’exemple suivant montre comment un pipeline peut faire référence à un environnement et à une ressource à utiliser comme cible pour un travail de déploiement.
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)
Cette approche offre les avantages suivants :
- Enregistre l’historique de déploiement sur une ressource spécifique au sein de l’environnement, au lieu d’enregistrer l’historique sur toutes les ressources au sein de l’environnement.
- Les étapes du travail de déploiement héritent automatiquement des détails de connexion de la ressource (dans ce cas, un espace de noms Kubernetes,
smarthotel-dev.bookings
), car le travail de déploiement est lié à l’environnement. Cela s’avère utile dans les cas où le même détail de connexion est défini pour plusieurs étapes du travail.