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
preDeploy
preDeployHook.
runOnce dağıtım stratejisi için önceden dağıtma kancası.
deploy
deployHook.
runOnce dağıtım stratejisi için kanca dağıtın.
routeTraffic
routeTrafficHook.
runOnce dağıtım stratejisi için yol trafiği kancası.
postRouteTraffic
postRouteTrafficHook.
runOnce dağıtım stratejisi için yol sonrası trafik kancası.
on
onSuccessOrFailureHook.
runOnce dağıtım stratejisi için başarı veya başarısızlık kancası.
Açıklamalar
runOnce
, ve postRouteTraffic
gibi preDeploy
deploy
routeTraffic
tü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.