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 essa 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 pós-rota para a estratégia de implantação runOnce.
on
onSuccessOrFailureHook.
Em êxito ou gancho de falha para a estratégia de implantação runOnce.
Comentários
runOnce
é a estratégia de implantação mais simples, em que todos os ganchos de ciclo de vida, especificamente preDeploy
deploy
, routeTraffic
e postRouteTraffic
, são executados uma vez. Depois, 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 baixar artefato será injetada automaticamente apenas no gancho de deploy
para trabalhos de implantação. Para interromper o download de artefatos, use - download: none
ou escolha artefatos específicos para baixar especificando tarefa Baixar artefato de pipeline.
routeTraffic
: usado para executar etapas que atendem 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 reverter ações ou limpar.
Exemplos
O snippet yaml de exemplo a seguir mostra um uso simples de um trabalho de implantação usando a runOnce
estratégia de implantação. O exemplo inclui uma etapa de check-out.
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, conforme mostrado no exemplo anterior.
O exemplo a seguir demonstra como um pipeline pode se referir um ambiente e um recurso a ser usado como o destino de 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)
Essa 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 no trabalho de implantação herdam automaticamente os detalhes de conexão do recurso (nesse caso, um namespace do 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.