Aşamalar, bağımlılıklar, & koşullar ekleme
Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015
Not
Microsoft Team Foundation Server (TFS) 2018 ve önceki sürümlerde derleme ve yayın işlem hatları tanımlar, çalıştırmalar derlemeler, hizmet bağlantıları hizmet uç noktaları,aşamalar ortamlar ve işler olarak adlandırılan aşamalar olarak adlandırılanlardır.
Aşama kavramı YAML işlem hatlarını mı yoksa klasik yayın işlem hatlarını mı kullandığınıza bağlı olarak değişir.
İşlem hattı işlerini aşamalar olarak düzenleyebilirsiniz. Aşamalar, işlem hattında önemli bölümlerdir: "bu uygulamayı derleme", "bu testleri çalıştırma" ve "üretim öncesi aşamalara dağıtma" aşamaların iyi örnekleridir. Bunlar, işlem hattınızı duraklatmak ve çeşitli denetimler gerçekleştirmek için işlem hattınıza mantıksal sınırlardır.
Açıkça tanımlamasanız bile her işlem hattı en az bir aşamaya sahip olabilir. Ayrıca, bir aşamanın başka bir aşamadan önce çalıştırılamayacak şekilde bir bağımlılık grafı içinde aşamaları ayarlayabilirsiniz. Bir aşama için 256 iş sınırı vardır.
Not
2019.1 Azure DevOps Server aşamaları desteği eklendi.
TFS'nin bu sürümü YAML'yi desteklemez.
Aşamaları belirtme
Not
2019.1 Azure DevOps Server aşamaları desteği eklendi.
En basit durumda, işlem hattında herhangi bir mantıksal sınıra ihtiyacınız yoktur. Bu durumda, anahtar sözcüğünü açıkça kullanmak zorunda stage değildir. YAML dosyanıza işleri doğrudan belirtebilirsiniz.
# this has one implicit stage and one implicit job
pool:
vmImage: 'ubuntu-latest'
steps:
- bash: echo "Hello world"
# this pipeline has one implicit stage
jobs:
- job: A
steps:
- bash: echo "A"
- job: B
steps:
- bash: echo "B"
İşlem hattınızı birden çok aşamaya göre düzenliyorsanız anahtar sözcüğünü stages kullanırnız.
stages:
- stage: A
jobs:
- job: A1
- job: A2
- stage: B
jobs:
- job: B1
- job: B2
Aşama düzeyinde bir belirtmeyi seçerseniz, iş düzeyinde aksi belirtilmedikçe bu aşamada tanımlanan tüm işler pool bu havuzu kullanır.
Not
2019'Azure DevOps Server havuzlar yalnızca iş düzeyinde belirtilebilir.
stages:
- stage: A
pool: StageAPool
jobs:
- job: A1 # will run on "StageAPool" pool based on the pool defined on the stage
- job: A2 # will run on "JobPool" pool
pool: JobPool
Aşama belirtmek için tam söz dizimi şu şekildedir:
stages:
- stage: string # name of the stage, A-Z, a-z, 0-9, and underscore
displayName: string # friendly name to display in the UI
dependsOn: string | [ string ]
condition: string
pool: string | pool
variables: { string: string } | [ variable | variableReference ]
jobs: [ job | templateReference]
TFS'nin bu sürümü YAML işlem hatlarını desteklemez.
Bağımlılıkları belirtme
Not
2019.1 Azure DevOps Server aşamaları desteği eklendi.
Bir işlem hattında birden çok aşama tanımladığınız zaman, bunlar varsayılan olarak, bunları YAML dosyasında tanımladığınız sırayla sırayla çalıştırabilirsiniz. Bunun istisnası, bağımlılıkları eklerken olur. Bağımlılıklarla aşamalar gereksinimlere göre dependsOn gereksinimlerini karşılar.
Pipelines en az bir aşama içermesi ve bağımlılık içermesi gerekir.
Birden çok aşamayı ve bunların bağımlılıklarını tanımlama söz dizimi şu şekildedir:
stages:
- stage: string
dependsOn: string
condition: string
Sırayla çalıştıran örnek aşamalar:
# if you do not use a dependsOn keyword, stages run in the order they are defined
stages:
- stage: QA
jobs:
- job:
...
- stage: Prod
jobs:
- job:
...
Paralel olarak çalıştıran örnek aşamalar:
stages:
- stage: FunctionalTest
jobs:
- job:
...
- stage: AcceptanceTest
dependsOn: [] # this removes the implicit dependency on previous stage and causes this to run in parallel
jobs:
- job:
...
Vantilatör ve vantilatör örneği:
stages:
- stage: Test
- stage: DeployUS1
dependsOn: Test # this stage runs after Test
- stage: DeployUS2
dependsOn: Test # this stage runs in parallel with DeployUS1, after Test
- stage: DeployEurope
dependsOn: # this stage runs after DeployUS1 and DeployUS2
- DeployUS1
- DeployUS2
TFS'nin bu sürümü YAML işlem hatlarını desteklemez.
Koşullar
Her aşamanın altında çalıştıracak koşulları belirterek. Varsayılan olarak, bir aşama başka bir aşamaya bağımlı değilse veya bağlı olduğu tüm aşamaların tamamlandıktan ve başarılı olup olmadığının dışında çalışır. Önceki aşama başarısız olsa bile veya özel bir koşul belirterek bir aşamayı çalıştırmaya zorlayarak bu davranışı özelleştirebilirsiniz.
Bir aşama için önceki adımların varsayılan koşullarını özel ayarlarsanız, tamamlanma ve başarı koşullarını kaldırırsanız. Bu nedenle, özel bir koşul kullanırsanız, önceki aşamanın başarıyla olup olmadığını and(succeeded(),custom_condition) kontrol etmek için yaygın olarak kullanılan bir durumdur. Aksi takdirde aşama, önceki aşamanın sonucuna bakılmaksızın çalışır.
Not
Aşağıdaki örnekte gösterildiği gibi başarısız ('JOBNAME/STAGENAME') ve başarılı ('JOBNAME/STAGENAME') koşulları yalnızca YAML işlem hatları için çalışır.
Not
2019.1 Azure DevOps Server aşamaları desteği eklendi.
Önceki aşamayı çalıştırma durumuna göre bir aşama çalıştırma örneği:
stages:
- stage: A
# stage B runs if A fails
- stage: B
condition: failed()
# stage C runs if B succeeds
- stage: C
dependsOn:
- A
- B
condition: succeeded('B')
Özel koşul kullanma örneği:
stages:
- stage: A
- stage: B
condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/master'))
TFS'nin bu sürümü YAML işlem hatlarını desteklemez.
Kuyruğa alma ilkelerini belirtme
YAML işlem hatları kuyruğa alma ilkelerini desteklemez. Bir işlem hattının her çalıştırması diğer çalıştırmalardan bağımsızdır ve diğer çalıştırmalardan bağımsızdır. Başka bir deyişle, iki ardışık işlemeniz iki işlem hattını tetikler ve her ikisi de birbirini beklemeden aynı aşama dizisini yürütür. Kuyruğa alma ilkelerini YAML işlem hatlarına getirmek için çalışırken, el ile onayları kullanarak yürütme sırasını el ile dizip denetlemenizi öneririz.
TFS'nin bu sürümü YAML işlem hatlarını desteklemez.
Onayları belirtme
Onay denetimlerini kullanarak bir aşamanın ne zaman çalışması gerektiğini el ile kontrol edebilirsiniz. Bu genellikle üretim ortamlarının dağıtımlarını kontrol etmek için kullanılır. Denetimler, işlem hattında bir aşamanın bir kaynağı ne zaman ve ne zaman tüketebilir olduğunu denetlemesi için kaynak sahibinin kullanımına açık bir mekanizmadır. Ortam gibi bir kaynağın sahibi olarak, kaynağı tüketen bir aşamanın başlatılamadan önce karşı olması gereken denetimler tanımlayabilirsiniz.
Şu anda ortamlarda el ile onay denetimleri de desteklemektedir. Daha fazla bilgi için bkz. Onaylar.
Onaylar henüz bu sürümde YAML işlem hatlarında Azure DevOps Server.
TFS'nin bu sürümü YAML işlem hatlarını desteklemez.


