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

preDeploypreDeployHook.
Pré-déploiement du hook pour la stratégie de déploiement runOnce.

deploydeployHook.
Déployer le hook pour la stratégie de déploiement runOnce.

routeTrafficrouteTrafficHook.
Router le hook de trafic pour la stratégie de déploiement runOnce.

postRouteTrafficpostRouteTrafficHook.
Hook de trafic post-routage pour la stratégie de déploiement runOnce.

ononSuccessOrFailureHook.
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 preDeploydeploy, 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.

Voir aussi