Udostępnij za pośrednictwem


jobs.deployment.strategy.runOnce definition

Strategia wdrażania RunOnce wprowadza zmiany, wykonując poszczególne kroki jednorazowo.

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.

Definicje odwołujące się do tej definicji: jobs.deployment.strategy

Właściwości

preDeploypreDeployHook.
Wstępny punkt zaczepienia dla strategii wdrażania runOnce.

deploydeployHook.
Wdróż punkt zaczepienia dla strategii wdrażania runOnce.

routeTrafficrouteTrafficHook.
Kierowanie punktów zaczepienia ruchu dla strategii wdrażania 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.
Po pomyślnych lub niepowodzeniu strategii wdrażania runOnce.

Uwagi

runOnce jest najprostszą strategią wdrażania, w której wszystkie punkty zaczepienia cyklu życia, czyli preDeploydeploy, routeTraffici postRouteTraffic, są wykonywane raz. on:success Następnie jest wykonywane polecenie lubon:failure.

Opisy punktów zaczepienia cyklu życia

preDeploy: służy do uruchamiania kroków, które inicjują zasoby przed rozpoczęciem wdrażania aplikacji.

deploy: służy do uruchamiania kroków wdrażania aplikacji. Zadanie pobierania artefaktu zostanie automatycznie wprowadzone tylko w haku deploy dla zadań wdrażania. Aby zatrzymać pobieranie artefaktów, użyj - download: none lub wybierz określone artefakty do pobrania, określając zadanie Pobierz artefakt potoku.

routeTraffic: służy do uruchamiania kroków obsługujących ruch do zaktualizowanej wersji.

postRouteTraffic: służy do uruchamiania kroków po kierowaniu ruchu. Zazwyczaj te zadania monitorują kondycję zaktualizowanej wersji dla zdefiniowanego interwału.

on: failure lub on: success: służy do uruchamiania kroków dla akcji wycofywania lub czyszczenia.

Przykłady

Poniższy przykładowy fragment kodu YAML przedstawia proste użycie zadania wdrożenia przy użyciu runOnce strategii wdrażania. Przykład zawiera krok wyewidencjonowania.


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

Przy każdym uruchomieniu tego zadania historia wdrożenia jest rejestrowana w smarthotel-dev środowisku.

Uwaga

  • Istnieje również możliwość utworzenia środowiska z pustymi zasobami i użycia go jako abstrakcyjnej powłoki do rejestrowania historii wdrożenia, jak pokazano w poprzednim przykładzie.

W następnym przykładzie pokazano, jak potok może odwoływać się zarówno do środowiska, jak i zasobu, który ma być używany jako element docelowy zadania wdrożenia.

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)

Takie podejście ma następujące korzyści:

  • Rejestruje historię wdrażania dla określonego zasobu w środowisku, w przeciwieństwie do rejestrowania historii na wszystkich zasobach w środowisku.
  • Kroki w zadaniu wdrażania automatycznie dziedziczą szczegóły połączenia zasobu (w tym przypadku przestrzeń nazw Kubernetes), smarthotel-dev.bookingsponieważ zadanie wdrażania jest połączone ze środowiskiem. Jest to przydatne w przypadkach, w których te same szczegóły połączenia są ustawione dla wielu kroków zadania.

Zobacz też