Bagikan melalui


definisi jobs.deployment.strategy.runOnce

Strategi penyebaran runOnce meluncurkan perubahan dengan menjalankan masing-masing langkahnya satu kali.

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.

Definisi yang mereferensikan definisi ini: jobs.deployment.strategy

Properti

preDeploypreDeployHook.
Sebarkan hook sebelumnya untuk strategi penyebaran runOnce.

deploydeployHook.
Sebarkan hook untuk strategi penyebaran runOnce.

routeTrafficrouteTrafficHook.
Merutekan kait lalu lintas untuk strategi penyebaran runOnce.

postRouteTrafficpostRouteTrafficHook.
Memposting kait lalu lintas rute untuk strategi penyebaran runOnce.

ononSuccessOrFailureHook.
Pada hook keberhasilan atau kegagalan untuk strategi penyebaran runOnce.

Keterangan

runOnce adalah strategi penyebaran paling sederhana di mana semua kait siklus hidup, yaitu preDeploydeploy, , routeTrafficdan postRouteTraffic, dijalankan sekali. Lalu, baik on:success maupun on:failure atau dijalankan.

Deskripsi kait siklus hidup

preDeploy: Digunakan untuk menjalankan langkah-langkah yang menginisialisasi sumber daya sebelum penyebaran aplikasi dimulai.

deploy: Digunakan untuk menjalankan langkah-langkah yang menyebarkan aplikasi Anda. Tugas unduh artefak akan disuntikkan secara otomatis hanya di deploy hook untuk pekerjaan penyebaran. Untuk berhenti mengunduh artefak, gunakan - download: none atau pilih artefak tertentu untuk diunduh dengan menentukan tugas Unduh Artefak Alur.

routeTraffic: Digunakan untuk menjalankan langkah-langkah yang melayani lalu lintas ke versi yang diperbarui.

postRouteTraffic: Digunakan untuk menjalankan langkah-langkah setelah lalu lintas dirutekan. Biasanya, tugas-tugas ini memantau kesehatan versi yang diperbarui untuk interval yang ditentukan.

on: failure atau on: success: Digunakan untuk menjalankan langkah-langkah untuk tindakan putar kembali atau pembersihan.

Contoh

Contoh cuplikan YAML berikut menampilkan penggunaan sederhana dari pekerjaan penyebaran dengan menggunakan runOnce strategi penyebaran. Contohnya mencakup langkah 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

Dengan setiap menjalankan pekerjaan ini, riwayat penyebaran dicatat terhadap smarthotel-dev lingkungan.

Catatan

  • Anda juga dapat membuat lingkungan dengan sumber daya kosong dan menggunakannya sebagai shell abstrak untuk merekam riwayat penyebaran, seperti yang ditunjukkan pada contoh sebelumnya.

Contoh berikutnya menunjukkan bagaimana alur dapat merujuk lingkungan dan sumber daya yang akan digunakan sebagai target untuk pekerjaan penyebaran.

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)

Pendekatan ini memiliki manfaat berikut:

  • Merekam riwayat penyebaran pada sumber daya tertentu dalam lingkungan, dibandingkan dengan merekam riwayat pada semua sumber daya dalam lingkungan.
  • Langkah-langkah dalam pekerjaan penyebaran secara otomatis mewarisi detail koneksi sumber daya (dalam hal ini, namespace Layanan Kube, smarthotel-dev.bookings), karena pekerjaan penyebaran ditautkan ke lingkungan. Ini berguna dalam kasus di mana detail koneksi yang sama diatur untuk beberapa langkah pekerjaan.

Lihat juga