Compartir a través de


definición jobs.deployment.strategy.runOnce

La estrategia de implementación runOnce implementa los cambios mediante la ejecución de cada uno de sus pasos una vez.

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.

Definiciones que hacen referencia a esta definición: jobs.deployment.strategy

Propiedades

preDeploy preDeployHook.
enlace De implementación previa para la estrategia de implementación runOnce.

deploy deployHook.
Enlace de implementación para la estrategia de implementación runOnce.

routeTraffic routeTrafficHook.
Enlace de tráfico de enrutamiento para la estrategia de implementación runOnce.

postRouteTraffic postRouteTrafficHook .
enlace de tráfico de enrutamiento post para la estrategia de implementación runOnce.

on onSuccessOrFailureHook.
Enlace correcto o de error para la estrategia de implementación runOnce.

Observaciones

runOnce es la estrategia de implementación más sencilla en la que todos los enlaces del ciclo de vida, es decir, preDeploydeploy, routeTrafficy postRouteTraffic, se ejecutan una vez. A continuación, se ejecuta on:success o on:failure.

Descripciones de enlaces de ciclo de vida

preDeploy: se usa para ejecutar pasos que inicializan los recursos antes de que se inicie la implementación de la aplicación.

deploy: se usa para ejecutar los pasos que implementan la aplicación. La tarea descargar artefacto solo se insertará automáticamente en el enlace de deploy para trabajos de implementación. Para detener la descarga de artefactos, use - download: none o elija artefactos específicos para descargar especificando tarea Descargar artefacto de canalización.

routeTraffic: se usa para ejecutar pasos que sirven el tráfico a la versión actualizada.

postRouteTraffic: se usa para ejecutar los pasos después de enrutar el tráfico. Normalmente, estas tareas supervisan el estado de la versión actualizada para el intervalo definido.

on: failure o on: success: se usa para ejecutar pasos para las acciones de reversión o la limpieza.

Ejemplos

En el siguiente fragmento de código YAML de ejemplo se muestra un uso sencillo de un trabajo de implementación mediante la estrategia de implementación de runOnce. En el ejemplo se incluye un paso de desprotección.


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

Con cada ejecución de este trabajo, el historial de implementación se registra en el entorno de smarthotel-dev.

Nota:

  • También es posible crear un entorno con recursos vacíos y usarlo como shell abstracto para registrar el historial de implementación, como se muestra en el ejemplo anterior.

En el ejemplo siguiente se muestra cómo una canalización puede hacer referencia tanto a un entorno como a un recurso que se va a usar como destino para un trabajo de implementación.

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)

Este enfoque tiene las siguientes ventajas:

  • Registra el historial de implementación en un recurso específico dentro del entorno, en lugar de registrar el historial en todos los recursos del entorno.
  • Los pasos del trabajo de implementación heredan automáticamente los detalles de conexión del recurso (en este caso, un espacio de nombres de Kubernetes, smarthotel-dev.bookings), porque el trabajo de implementación está vinculado al entorno. Esto resulta útil en los casos en los que se establece el mismo detalle de conexión para varios pasos del trabajo.

Consulte también