Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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, preDeploy
deploy
, routeTraffic
y 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.