definizione jobs.deployment.strategy.runOnce

La strategia di distribuzione runOnce implementa le modifiche eseguendo ogni passaggio una volta.

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.

Definizioni che fanno riferimento a questa definizione: jobs.deployment.strategy

Proprietà

preDeploypreDeployHook.
Pre-distribuire hook per la strategia di distribuzione runOnce.

deploydeployHook.
Distribuire hook per la strategia di distribuzione runOnce.

routeTrafficrouteTrafficHook.
Indirizzare l'hook del traffico per la strategia di distribuzione runOnce.

postRouteTrafficpostRouteTrafficHook.
Post-route traffic hook for runOnce deployment strategy .Post route traffic hook for runOnce deployment strategy.Post route traffic hook for runOnce deployment strategy.

ononSuccessOrFailureHook.
In caso di esito positivo o negativo dell'hook per la strategia di distribuzione runOnce.

Commenti

runOnce è la strategia di distribuzione più semplice in cui tutti gli hook del ciclo di vita, ovvero preDeploydeploy, routeTraffice postRouteTraffic, vengono eseguiti una sola volta. on:success Viene quindi eseguito o on:failure .

Descrizioni degli hook del ciclo di vita

preDeploy: usato per eseguire i passaggi che inizializzano le risorse prima dell'avvio della distribuzione dell'applicazione.

deploy: usato per eseguire i passaggi che distribuiscono l'applicazione. L'attività Scarica artefatto verrà inserita automaticamente solo nell'hook deploy per i processi di distribuzione. Per interrompere il download degli artefatti, usare - download: none o scegliere elementi specifici da scaricare specificando l'attività Scarica artefatto pipeline.

routeTraffic: usato per eseguire i passaggi che servono il traffico alla versione aggiornata.

postRouteTraffic: usato per eseguire i passaggi dopo l'instradato del traffico. In genere, queste attività monitorano l'integrità della versione aggiornata per l'intervallo definito.

on: failure o on: success: usato per eseguire i passaggi per le azioni di rollback o la pulizia.

Esempio

Il frammento di codice YAML di esempio seguente illustra un semplice uso di un processo di distribuzione usando la runOnce strategia di distribuzione. L'esempio include un passaggio di estrazione.


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

Con ogni esecuzione di questo processo, la cronologia di distribuzione viene registrata nell'ambiente smarthotel-dev .

Nota

  • È anche possibile creare un ambiente con risorse vuote e usarlo come shell astratta per registrare la cronologia di distribuzione, come illustrato nell'esempio precedente.

L'esempio seguente illustra come una pipeline può fare riferimento sia a un ambiente che a una risorsa da usare come destinazione per un processo di distribuzione.

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)

Questo approccio presenta i vantaggi seguenti:

  • Registra la cronologia di distribuzione in una risorsa specifica all'interno dell'ambiente, anziché registrare la cronologia in tutte le risorse all'interno dell'ambiente.
  • I passaggi del processo di distribuzione ereditano automaticamente i dettagli di connessione della risorsa (in questo caso uno spazio dei nomi Kubernetes, smarthotel-dev.bookings), perché il processo di distribuzione è collegato all'ambiente. Ciò è utile nei casi in cui vengono impostati gli stessi dettagli di connessione per più passaggi del processo.

Vedi anche