jobs.deployment.strategy.runOnce definition
A estratégia de implementação runOnce implementa as alterações ao executar cada um dos seus passos uma 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.
Definições que referenciam esta definição: jobs.deployment.strategy
Propriedades
preDeploy
preDeployHook.
Implementar previamente o hook para a estratégia de implementação runOnce.
deploy
deployHook.
Implementar o hook para a estratégia de implementação runOnce.
routeTraffic
routeTrafficHook.
Encaminhar o gancho de tráfego para a estratégia de implementação runOnce.
postRouteTraffic
postRouteTrafficHook.
Post route traffic hook for runOnce deployment strategy.
on
onSuccessOrFailureHook.
No gancho de êxito ou falha para a estratégia de implementação runOnce.
Observações
runOnce
é a estratégia de implementação mais simples em que todos os ganchos de ciclo de vida, nomeadamente preDeploy
deploy
, routeTraffic
e postRouteTraffic
, são executados uma vez. Em seguida, on:
success
ou on:
failure
é executado.
Descrições de ganchos de ciclo de vida
preDeploy
: utilizado para executar passos que inicializam recursos antes do início da implementação da aplicação.
deploy
: utilizado para executar passos que implementam a sua aplicação. A tarefa transferir artefacto será injetada automaticamente apenas no deploy
gancho para tarefas de implementação. Para parar a transferência de artefactos, utilize - download: none
ou escolha artefactos específicos para transferir ao especificar a tarefa Transferir Artefacto do Pipeline.
routeTraffic
: utilizado para executar passos que servem o tráfego para a versão atualizada.
postRouteTraffic
: utilizado para executar os passos após o encaminhamento do tráfego. Normalmente, estas tarefas monitorizam o estado de funcionamento da versão atualizada para um intervalo definido.
on: failure
ou on: success
: utilizado para executar passos para ações de reversão ou limpeza.
Exemplos
O fragmento YAML de exemplo seguinte mostra uma utilização simples de uma tarefa de implementação através da runOnce
estratégia de implementação. O exemplo inclui um passo de saída.
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
Com cada execução desta tarefa, o histórico de implementações é registado no smarthotel-dev
ambiente.
Nota
- Também é possível criar um ambiente com recursos vazios e utilizá-lo como uma shell abstrata para registar o histórico de implementações, conforme mostrado no exemplo anterior.
O exemplo seguinte demonstra como um pipeline pode referenciar um ambiente e um recurso a utilizar como destino para uma tarefa de implementação.
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)
Esta abordagem tem os seguintes benefícios:
- Regista o histórico de implementações num recurso específico no ambiente, em vez de registar o histórico em todos os recursos dentro do ambiente.
- Os passos na tarefa de implementação herdam automaticamente os detalhes de ligação do recurso (neste caso, um espaço de nomes do Kubernetes),
smarthotel-dev.bookings
porque a tarefa de implementação está ligada ao ambiente. Isto é útil nos casos em que o mesmo detalhe de ligação está definido para vários passos da tarefa.