definición jobs.deployment.strategy.runOnce
La estrategia de implementación runOnce implementa los cambios ejecutando 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 previo a la implementación para la estrategia de implementación runOnce.
deploy
deployHook.
Implemente el enlace para la estrategia de implementación runOnce.
routeTraffic
routeTrafficHook.
Enrutamiento del enlace de tráfico para la estrategia de implementación runOnce.
postRouteTraffic
postRouteTrafficHook.
Después del enlace de tráfico de enrutamiento para la estrategia de implementación runOnce.
on
onSuccessOrFailureHook.
En el enlace correcto o erróneo 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, preDeploy
deploy
, routeTraffic
y postRouteTraffic
, se ejecutan una vez. Luego, 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 comience la implementación de la aplicación.
deploy
: se usa para ejecutar los pasos que implementan la aplicación. La tarea Descargar artefacto se insertará automáticamente solo 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 mediante la especificación de la 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 durante un intervalo definido.
on: failure
u on: success
: se usan para ejecutar pasos de acciones de reversión o 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 runOnce
estrategia de implementación. En el ejemplo se incluye un paso de restauració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 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 siguiente ejemplo 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 procedimiento 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.