Partilhar via


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, 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: 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.

Ver também