Aşamalar, bağımlılıklar, & koşulları eklemeAdd stages, dependencies, & conditions

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2015Azure 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 olarak adlandırılır, çalışmalara derlemeler denir, hizmet bağlantılarına hizmet uç noktaları denir, aşamalar ortamlar olarak adlandırılır ve işler aşamalar olarak adlandırılır.In Microsoft Team Foundation Server (TFS) 2018 and previous versions, build and release pipelines are called definitions, runs are called builds, service connections are called service endpoints, stages are called environments, and jobs are called phases.

Aşamaların kavramı, YAML işlem hatlarını veya klasik yayın işlem hatlarını kullanmanıza bağlı olarak farklılık gösterir.The concept of stages varies depending on whether you use YAML pipelines or classic release pipelines.

İşlem hattı işlerini aşamalar halinde düzenleyebilirsiniz.You can organize pipeline jobs into stages. Aşamalar, bir işlem hattındaki ana bölerlerdir: "Bu uygulamayı derleme", "Bu testleri çalıştırma" ve "ön üretime dağıtma", aşamalar için iyi örneklerdir.Stages are the major divisions in a pipeline: "build this app", "run these tests", and "deploy to pre-production" are good examples of stages. İşlem hattınızda, işlem hattını duraklatabilir ve çeşitli denetimler gerçekleştirebileceğiniz mantıksal sınırlardır.They are logical boundaries in your pipeline where you can pause the pipeline and perform various checks.

Açık olarak tanımlamadığınız halde her işlem hattının en az bir aşaması vardır.Every pipeline has at least one stage even if you do not explicitly define it. Ayrıca, bir aşamanın başka bir aşamada çalışması için aşamaları bir bağımlılık grafiğine göre de düzenleyebilirsiniz.You can also arrange stages into a dependency graph so that one stage runs before another one.

Not

Azure DevOps Server 2019,1 ' ye aşama desteği eklenmiştir.Support for stages was added in Azure DevOps Server 2019.1.

TFS 'nin bu sürümü YAML 'yi desteklemez.This version of TFS doesn't support YAML.

Aşamaları belirtSpecify stages

Not

Azure DevOps Server 2019,1 ' ye aşama desteği eklenmiştir.Support for stages was added in Azure DevOps Server 2019.1.

En basit durumda, işlem hattınızda mantıksal sınırlara gerek kalmaz.In the simplest case, you do not need any logical boundaries in your pipeline. Bu durumda, anahtar sözcüğünü açıkça kullanmak zorunda değilsiniz stage .In that case, you do not have to explicitly use the stage keyword. YAML dosyanızdaki işleri doğrudan belirtebilirsiniz.You can directly specify the jobs in your YAML file.

# this has one implicit stage and one implicit job
pool:
  vmImage: 'ubuntu-16.04'
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şamada organize ederseniz stages anahtar sözcüğünü kullanırsınız.If you organize your pipeline into multiple stages, you use the stages keyword.

stages:
- stage: A
  jobs:
  - job: A1
  - job: A2

- stage: B
  jobs:
  - job: B1
  - job: B2

Aşama düzeyinde bir belirtmeyi seçerseniz pool , bu aşamada tanımlanan tüm işler, aksi takdirde iş düzeyinde belirtilmediği takdirde bu havuzu kullanır.If you choose to specify a pool at the stage level, then all jobs defined in that stage will use that pool unless otherwise specified at the job-level.

Not

Azure DevOps Server 2019 ' de havuzlar yalnızca iş düzeyinde belirtilebilir.In Azure DevOps Server 2019, pools can only be specified at job level.

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

Bir aşamayı belirtmek için tam sözdizimi şöyledir:The full syntax to specify a stage is:

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.This version of TFS doesn't support YAML pipelines.

Bağımlılıkları belirtSpecify dependencies

Not

Azure DevOps Server 2019,1 ' ye aşama desteği eklenmiştir.Support for stages was added in Azure DevOps Server 2019.1.

Bir işlem hattında birden çok aşama tanımladığınızda, varsayılan olarak, YAML dosyasında bunları tanımladığınız sırada sırayla çalışır.When you define multiple stages in a pipeline, by default, they run sequentially in the order in which you define them in the YAML file. Bunun özel durumu bağımlılıklar eklersiniz.The exception to this is when you add dependencies. Bağımlılıklarla, aşamalar gereksinimlerin sırasıyla çalışır dependsOn .With dependencies, stages run in the order of the dependsOn requirements.

İşlem hatları, bağımlılığı olmayan en az bir aşama içermelidir.Pipelines must contain at least one stage with no dependencies.

Birden çok aşama ve bağımlılıklarını tanımlamak için sözdizimi şöyledir:The syntax for defining multiple stages and their dependencies is:

stages:
- stage: string
  dependsOn: string
  condition: string

Sıralı olarak çalışan örnek aşamalar:Example stages that run sequentially:

# 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ışan örnek aşamalar:Example stages that run in parallel:

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:
    ...

Fan ve fan örneği:Example of fan-out and fan-in:

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.This version of TFS doesn't support YAML pipelines.

KoşullarConditions

Her aşamanın çalıştırıldığı koşulları belirtebilirsiniz.You can specify the conditions under which each stage runs. Varsayılan olarak, bir aşama başka bir aşamaya bağlı değilse veya bağımlı olduğu tüm aşamalar tamamlandığında ve başarılı olursa çalışır.By default, a stage runs if it does not depend on any other stage, or if all of the stages that it depends on have completed and succeeded. Önceki bir aşama başarısız olsa veya özel bir koşul belirterek, bir aşamayı çalıştırmaya zorlayarak, bu davranışı özelleştirebilirsiniz.You can customize this behavior by forcing a stage to run even if a previous stage fails or by specifying a custom condition.

Bir aşama için önceki adımların varsayılan koşulunu özelleştirirseniz, tamamlanma ve başarı koşullarını kaldırırsınız.If you customize the default condition of the preceding steps for a stage, you remove the conditions for completion and success. Bu nedenle, özel bir koşul kullanırsanız, and(succeeded(),custom_condition) önceki aşamanın başarıyla çalışıp çalışmadığını denetlemek için kullanılması yaygındır.So, if you use a custom condition, it's common to use and(succeeded(),custom_condition) to check whether the preceding stage ran successfully. Aksi takdirde, aşama, önceki aşamanın sonucuna bakılmaksızın çalışır.Otherwise, the stage runs regardless of the outcome of the preceding stage.

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 ardışık düzenleriiçin geçerlidir.Conditions for failed ('JOBNAME/STAGENAME') and succeeded ('JOBNAME/STAGENAME') as shown in the following example work only for YAML pipelines.

Not

Azure DevOps Server 2019,1 ' ye aşama desteği eklenmiştir.Support for stages was added in Azure DevOps Server 2019.1.

Önceki bir aşamanın çalıştırılmasıyla çalışma durumuna göre bir aşama çalıştırmak için örnek:Example to run a stage based upon the status of running a previous stage:

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şulkullanımı örneği:Example of using a custom condition:

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.This version of TFS doesn't support YAML pipelines.

Sıraya alma ilkelerini belirtinSpecify queuing policies

YAML işlem hatları sıraya alma ilkelerini desteklemez.YAML pipelines don't support queuing policies. İşlem hattının her çalışması, diğer çalışmalardan bağımsızdır ve farkında değildir.Each run of a pipeline is independent from and unaware of other runs. Diğer bir deyişle, art arda iki işlemeleriniz iki işlem hattı tetikleyebilir ve her ikisi de her ikisi de beklemeden aynı dizi aşamaları yürütür.In other words, your two successive commits may trigger two pipelines, and both of them will execute the same sequence of stages without waiting for each other. Sıra ilkelerini YAML işlem hattına getirmeye çalışırken, bu önemli olursa yürütme sırasını el ile sıralamak ve denetlemek için el ile onaylar kullanmanızı öneririz.While we work to bring queuing policies to YAML pipelines, we recommend that you use manual approvals in order to manually sequence and control the order the execution if this is of importance.

TFS 'nin bu sürümü YAML işlem hatlarını desteklemez.This version of TFS does not support YAML pipelines.

Onayları belirtSpecify approvals

Bir aşamanın onay denetimleri kullanarak ne zaman çalışacağını el ile denetleyebilirsiniz.You can manually control when a stage should run using approval checks. Bu, genellikle üretim ortamlarının dağıtımlarını denetlemek için kullanılır.This is commonly used to control deployments to production environments. Denetim, bir işlem hattındaki bir aşamanın bir kaynağı tüketmesi durumunda ve ne zaman kullanılabileceğini denetlemek için kaynak sahibine sunulan bir mekanizmadır.Checks are a mechanism available to the resource owner to control if and when a stage in a pipeline can consume a resource. Bir kaynağın sahibi olarak (örneğin, bir ortam), kaynağın başlayabilmesi için bir aşamanın önüne getirilmesi gereken denetimleri tanımlayabilirsiniz.As an owner of a resource, such as an environment, you can define checks that must be satisfied before a stage consuming that resource can start.

Şu anda ortamlarda el ile onay denetimleri desteklenir.Currently, manual approval checks are supported on environments. Daha fazla bilgi için bkz. onaylar.For more information, see Approvals.

Onaylar bu Azure DevOps Server sürümünde YAML işlem hatları 'nda henüz desteklenmiyor.Approvals are not yet supported in YAML pipelines in this version of Azure DevOps Server.

TFS 'nin bu sürümü YAML işlem hatlarını desteklemez.This version of TFS doesn't support YAML pipelines.