jobs.deployment.strategy.runOnce tanımı

runOnce dağıtım stratejisi, adımlarının her birini bir kez yürüterek değişiklikleri kullanıma hazırlar.

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.

Bu tanıma başvuran tanımlar: jobs.deployment.strategy

Özellikler

preDeploypreDeployHook.
runOnce dağıtım stratejisi için önceden dağıtma kancası.

deploydeployHook.
runOnce dağıtım stratejisi için kanca dağıtın.

routeTrafficrouteTrafficHook.
runOnce dağıtım stratejisi için yol trafiği kancası.

postRouteTrafficpostRouteTrafficHook.
runOnce dağıtım stratejisi için yol sonrası trafik kancası.

ononSuccessOrFailureHook.
runOnce dağıtım stratejisi için başarı veya başarısızlık kancası.

Açıklamalar

runOnce, ve postRouteTrafficgibi preDeploydeployrouteTraffictüm yaşam döngüsü kancalarının bir kez yürütüldüğü en basit dağıtım stratejisidir. on:success Ardından veya on:failure yürütülür.

Yaşam döngüsü kancalarının açıklamaları

preDeploy: Uygulama dağıtımı başlamadan önce kaynakları başlatan adımları çalıştırmak için kullanılır.

deploy: Uygulamanızı dağıtan adımları çalıştırmak için kullanılır. Yapıt indirme görevi yalnızca dağıtım işleri için kancaya deploy otomatik olarak eklenecektir. Yapıtları indirmeyi durdurmak için İşlem Hattı Yapıtlarını İndir görevini belirterek indirilmesi gereken belirli yapıtları kullanın - download: none veya seçin.

routeTraffic: Güncelleştirilmiş sürüme gelen trafiğe hizmet eden adımları çalıştırmak için kullanılır.

postRouteTraffic: Trafik yönlendirildikten sonra adımları çalıştırmak için kullanılır. Bu görevler genellikle tanımlı aralık için güncelleştirilmiş sürümün durumunu izler.

on: failure veya on: success: Geri alma eylemleri veya temizleme adımlarını çalıştırmak için kullanılır.

Örnekler

Aşağıdaki örnek YAML kod parçacığı, dağıtım stratejisini kullanarak runOnce dağıtım işinin basit bir kullanımını gösterir. Örnek bir kullanıma alma adımı içerir.


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

Bu işin her çalıştırmasıyla birlikte, dağıtım geçmişi ortama kaydedilir smarthotel-dev .

Not

  • Ayrıca, önceki örnekte gösterildiği gibi boş kaynaklarla bir ortam oluşturmak ve bunu dağıtım geçmişini kaydetmek için soyut kabuk olarak kullanmak da mümkündür.

Sonraki örnekte, bir işlem hattının bir dağıtım işi için hedef olarak kullanılacak bir ortama ve kaynağa nasıl başvurabileceği gösterilmektedir.

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)

Bu yaklaşımın aşağıdaki avantajları vardır:

  • Ortamın içindeki tüm kaynaklarda geçmişi kaydetmek yerine, ortamdaki belirli bir kaynakta dağıtım geçmişini kaydeder.
  • Dağıtım işi ortama bağlı olduğundan dağıtım işindeki adımlar kaynağın bağlantı ayrıntılarını (bu örnekte Kubernetes ad alanısmarthotel-dev.bookings) otomatik olarak devralır. Bu, aynı bağlantı ayrıntılarının işin birden çok adımı için ayarlandığı durumlarda kullanışlıdır.

Ayrıca bkz.