definição jobs.deployment.strategy.runOnce
A estratégia de implantação runOnce implementa alterações executando cada uma de suas etapas 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 fazem referência a esta definição: jobs.deployment.strategy
Propriedades
preDeploy
preDeployHook.
Gancho de pré-implantação para a estratégia de implantação runOnce.
deploy
deployHook.
Implantar gancho para a estratégia de implantação runOnce.
routeTraffic
routeTrafficHook.
Gancho de tráfego de rota para a estratégia de implantação runOnce.
postRouteTraffic
postRouteTrafficHook.
Gancho de tráfego de rota de postagem para a estratégia de implantação runOnce.
on
onSuccessOrFailureHook.
Gancho de sucesso ou falha para a estratégia de implantação runOnce.
Observações
runOnce
é a estratégia de implantação mais simples, em que todos os ganchos do ciclo de vida, ou seja, 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
: Usado para executar etapas que inicializam recursos antes do início da implantação do aplicativo.
deploy
: Usado para executar etapas que implantam seu aplicativo. A tarefa de download do artefato será injetada automaticamente somente no gancho de deploy
para trabalhos de implantação. Para interromper o download de artefatos, use - download: none
ou escolha artefatos específicos para download, especificando tarefa Download Pipeline Artifact.
routeTraffic
: Usado para executar etapas que servem o tráfego para a versão atualizada.
postRouteTraffic
: Usado para executar as etapas depois que o tráfego é roteado. Normalmente, essas tarefas monitoram a integridade da versão atualizada para um intervalo definido.
on: failure
ou on: success
: Usado para executar etapas para ações de reversão ou limpeza.
Exemplos
O trecho YAML de exemplo a seguir mostra um uso simples de um trabalho de implantação usando a estratégia de implantação runOnce
. O exemplo inclui uma etapa de checkout.
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 desse trabalho, o histórico de implantação é registrado no ambiente smarthotel-dev
.
Observação
- Também é possível criar um ambiente com recursos vazios e usá-lo como um shell abstrato para registrar o histórico de implantação, como mostrado no exemplo anterior.
O próximo exemplo demonstra como um pipeline pode referir um ambiente e um recurso a serem usados como destino para um trabalho de implantaçã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:
- Registra o histórico de implantação em um recurso específico dentro do ambiente, em vez de registrar o histórico em todos os recursos dentro do ambiente.
- As etapas do trabalho de implantação herdam automaticamente os detalhes de conexão do recurso (neste caso, um namespace Kubernetes,
smarthotel-dev.bookings
), porque o trabalho de implantação está vinculado ao ambiente. Isso é útil nos casos em que o mesmo detalhe de conexão é definido para várias etapas do trabalho.