Partilhar via


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

preDeploypreDeployHook.
Implementar previamente o hook para a estratégia de implementação runOnce.

deploydeployHook.
Implementar o hook para a estratégia de implementação runOnce.

routeTrafficrouteTrafficHook.
Encaminhar o gancho de tráfego para a estratégia de implementação runOnce.

postRouteTrafficpostRouteTrafficHook.
Post route traffic hook for runOnce deployment strategy.

ononSuccessOrFailureHook.
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 preDeploydeploy, routeTraffice 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.bookingsporque 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.

Ver também