YAML şema başvurusuYAML schema reference

Azure PipelinesAzure Pipelines

Bu makale, YAML işlem hatları Azure Pipelines ayrıntılı bir başvuru kılavuzudur.This article is a detailed reference guide to Azure Pipelines YAML pipelines. Desteklenen tüm YAML özellikleri ve kullanılabilir seçeneklerin kataloğunu içerir.It includes a catalog of all supported YAML capabilities and the available options.

YAML işlem hatlarını kullanmaya başlamanız en iyi yolu Hızlı Başlangıç kılavuzunuokumalıdır.The best way to get started with YAML pipelines is to read the quickstart guide. Bundan sonra, YAML işlem hattınızı gereksinimlerinize göre nasıl yapılandıracağınızı öğrenmek için bkz. derleme değişkenleri ve işlerigibi kavramsal konular.After that, to learn how to configure your YAML pipeline for your needs, see conceptual topics like Build variables and Jobs.

YAML işlem hattınızı gereksinimlerinize göre yapılandırma hakkında bilgi edinmek için bkz. derleme değişkenleri ve işlerigibi kavramsal konular.To learn how to configure your YAML pipeline for your needs, see conceptual topics like Build variables and Jobs.

Ardışık düzen yapısıPipeline structure

İşlem hattı, CI/CD işlemini tanımlayan bir veya daha fazla aşamadır.A pipeline is one or more stages that describe a CI/CD process. Aşamalar, bir işlem hattının ana bölmalardır.Stages are the major divisions in a pipeline. "Bu uygulamayı derleyin," "Bu Testleri Çalıştır" ve "ön üretime dağıt" aşamaları iyi örneklerdir.The stages "Build this app," "Run these tests," and "Deploy to preproduction" are good examples.

Bir aşama, aynı makineye atanabilen iş birimleri olan bir veya daha fazla iş olur.A stage is one or more jobs, which are units of work assignable to the same machine. Hem aşamaları hem de işleri bağımlılık grafikleri halinde düzenleyebilirsiniz.You can arrange both stages and jobs into dependency graphs. Örnek olarak, "Bu aşamayı bu aşamayı önce Çalıştır" ve "Bu iş bu işin çıktısına bağlıdır" sayılabilir.Examples include "Run this stage before that one" and "This job depends on the output of that job."

İş, doğrusal bir adım serisidir.A job is a linear series of steps. Adımlar görev, komut dosyaları veya Dış şablonlara başvuru olabilir.Steps can be tasks, scripts, or references to external templates.

Bu hiyerarşi, şöyle bir YAML dosyası yapısına yansıtılır:This hierarchy is reflected in the structure of a YAML file like:

  • İşlem HattıPipeline
    • Aşama AStage A
      • İş 1Job 1
        • Adım 1,1Step 1.1
        • Adım 1,2Step 1.2
        • ......
      • İş 2Job 2
        • Adım 2,1Step 2.1
        • Adım 2,2Step 2.2
        • ......
    • B AşamasıStage B
      • ......

Basit işlem hatları bu düzeylerin hepsini gerektirmez.Simple pipelines don't require all of these levels. Örneğin, tek işli bir derlemede yalnızca adımlar olduğundan aşamalar ve işler için kapsayıcıları atabilirsiniz.For example, in a single-job build you can omit the containers for stages and jobs because there are only steps. Ayrıca bu makalede gösterilen birçok seçenek gerekli değildir ve iyi varsayılanlara sahip olduğundan YAML tanımlarının hepsini içermesi olası değildir.And because many options shown in this article aren't required and have good defaults, your YAML definitions are unlikely to include all of them.

İşlem hattı, CI/CD işlemini tanımlayan bir veya daha fazla iştir.A pipeline is one or more jobs that describe a CI/CD process. İş, aynı makineye atanabilir bir iş birimidir.A job is a unit of work assignable to the same machine. İşleri "Bu iş, bu işin çıkışına bağlıdır" gibi bağımlılık grafları olarak ayarlayabilirsiniz.You can arrange jobs into dependency graphs like "This job depends on the output of that job."

İş, doğrusal bir adım serisidir.A job is a linear series of steps. Adımlar görevler, betikler veya dış şablonlara başvurular olabilir.Steps can be tasks, scripts, or references to external templates.

Bu hiyerarşi bir YAML dosyasının yapısına şu şekilde yansıtıldı:This hierarchy is reflected in the structure of a YAML file like:

  • İşlem HattıPipeline
    • İş 1Job 1
      • 1.1. AdımStep 1.1
      • 1.2. AdımStep 1.2
      • ......
    • İş 2Job 2
      • 2.1. AdımStep 2.1
      • 2.2. AdımStep 2.2
      • ......

Tek işli işlem hatları için yalnızca adımlar olduğundan işler kapsayıcısı atabilirsiniz.For single-job pipelines, you can omit the jobs container because there are only steps. Ayrıca bu makalede gösterilen birçok seçenek gerekli değildir ve iyi varsayılanlara sahip olduğundan YAML tanımlarının hepsini içermesi olası değildir.And because many options shown in this article aren't required and have good defaults, your YAML definitions are unlikely to include all of them.

KurallarConventions

Bu makalede kullanılan söz dizimi kuralları şu şekildedir:Here are the syntax conventions used in this article:

  • sol tarafta, : işlem hattı tanımlarında kullanılan değişmez anahtar sözcük yer alır.To the left of : is a literal keyword used in pipeline definitions.
  • sağ tarafından bir : veri türü kullanılır.To the right of : is a data type. Veri türü, dize veya bu makalede başka bir yerde tanımlanan zengin bir yapıya başvuru gibi bir temel tür olabilir.The data type can be a primitive type like string or a reference to a rich structure defined elsewhere in this article.
  • NOTATION [ DataType , ] belirtilen veri türü dizisini gösterir.The notation [ datatype ] indicates an array of the mentioned data type. Örneğin, [ string ] dizeler dizisidir.For instance, [ string ] is an array of strings.
  • Notation { DataType : DataType , bir } veri türünün diğerine eşleşmesini gösterir.The notation { datatype : datatype } indicates a mapping of one data type to another. Örneğin, dizeler { string: string } için dizelerin bir eşlemedir.For instance, { string: string } is a mapping of strings to strings.
  • Sembol, | anahtar sözcük için kullanılabilir birden çok veri türü olduğunu gösterir.The symbol | indicates there are multiple data types available for the keyword. Örneğin, job | templateReference bir iş tanımına ya da şablon başvurusuna izin verilir.For instance, job | templateReference means either a job definition or a template reference is allowed.

YAML temelleriYAML basics

Bu belge Azure Pipelines YAML dosyasının şemasını içerir.This document covers the schema of an Azure Pipelines YAML file. YAML 'nin temellerini öğrenmek için bkz. Y dakika içinde YAML 'Yi öğrenme.To learn the basics of YAML, see Learn YAML in Y Minutes. Azure Pipelines tüm YAML özelliklerini desteklemez.Azure Pipelines doesn't support all YAML features. Desteklenmeyen özellikler arasında bağlantılar, karmaşık anahtarlar ve kümeler bulunur.Unsupported features include anchors, complex keys, and sets. Ayrıca, standart YAML 'nin aksine, Azure Pipelines,, stage , job task veya bir script eşlemenin ilk anahtarı gibi bir görev kısayoluna bakdığına bağlıdır.Also, unlike standard YAML, Azure Pipelines depends on seeing stage, job, task, or a task shortcut like script as the first key in a mapping.

İşlem HattıPipeline

name: string  # build numbering format
resources:
  pipelines: [ pipelineResource ]
  containers: [ containerResource ]
  repositories: [ repositoryResource ]
variables: # several syntaxes, see specific section
trigger: trigger
pr: pr
stages: [ stage | templateReference ]

Tek bir aşamavarsa, stages anahtar sözcüğünü atlayabilir ve işler anahtar sözcüğünü doğrudan belirtebilirsiniz:If you have a single stage, you can omit the stages keyword and directly specify the jobs keyword:

# ... other pipeline-level keywords
jobs: [ job | templateReference ]

Tek bir aşama ve tek bir işiniz varsa, stages ve jobs anahtar sözcüklerini atlayabilir ve doğrudan Steps anahtar sözcüğünü belirtebilirsiniz:If you have a single stage and a single job, you can omit the stages and jobs keywords and directly specify the steps keyword:

# ... other pipeline-level keywords
steps: [ script | bash | pwsh | powershell | checkout | task | templateReference ]
name: string  # build numbering format
resources:
  containers: [ containerResource ]
  repositories: [ repositoryResource ]
variables: # several syntaxes, see specific section
trigger: trigger
pr: pr
jobs: [ job | templateReference ]

Tek bir işiniz varsa, jobs anahtar sözcüğünü atlayabilir ve doğrudan Steps anahtar sözcüğünü belirtebilirsiniz:If you have a single job, you can omit the jobs keyword and directly specify the steps keyword:

# ... other pipeline-level keywords
steps: [ script | bash | pwsh | powershell | checkout | task | templateReference ]

Aşağıdakiler hakkında daha fazla bilgi edinin:Learn more about:

AşamaStage

Aşama, ilgili işlerin koleksiyonudur.A stage is a collection of related jobs. Varsayılan olarak, aşamalar sırayla çalışır.By default, stages run sequentially. Her aşama yalnızca, özelliği aracılığıyla belirtilmediği takdirde önceki aşama tamamlandıktan sonra başlar dependsOn .Each stage starts only after the preceding stage is complete unless otherwise specified via the dependsOn property.

Bir aşamanın ne zaman çalışacağını el ile denetlemek için onay denetimleri kullanın.Use approval checks to manually control when a stage should run. Bu denetimler genellikle üretim ortamlarında dağıtımları denetlemek için kullanılır.These checks are commonly used to control deployments to production environments.

Denetimler, kaynak sahibinin kullanabildiği bir mekanizmadır.Checks are a mechanism available to the resource owner. İşlem hattındaki bir aşamanın bir kaynağı ne zaman tükettiğini denetler.They control when a stage in a pipeline consumes a resource. Bir ortam gibi bir kaynağın sahibi olarak, kaynağı kullanan bir aşamanın başlayabilmesi için gereken denetimleri tanımlayabilirsiniz.As an owner of a resource like an environment, you can define checks that are required before a stage that consumes the resource can start.

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

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
  variables: # several syntaxes, see specific section
  jobs: [ job | templateReference]

Aşamalar, koşullarve değişkenlerhakkında daha fazla bilgi edinin.Learn more about stages, conditions, and variables.

İşJob

İş , bir Aracı tarafından veya bir sunucusundaçalıştırılan adımların koleksiyonudur.A job is a collection of steps run by an agent or on a server. İşler, koşullu çalışabilir ve daha önceki işlere bağlıolabilir.Jobs can run conditionally and might depend on earlier jobs.

jobs:
- job: string  # name of the job (A-Z, a-z, 0-9, and underscore)
  displayName: string  # friendly name to display in the UI
  dependsOn: string | [ string ]
  condition: string
  strategy:
    parallel: # parallel strategy; see the following "Parallel" topic
    matrix: # matrix strategy; see the following "Matrix" topic
    maxParallel: number # maximum number of matrix jobs to run simultaneously
  continueOnError: boolean  # 'true' if future jobs should run even if this job fails; defaults to 'false'
  pool: pool # see the following "Pool" schema
  workspace:
    clean: outputs | resources | all # what to clean up before the job runs
  container: containerReference # container to run this job inside of
  timeoutInMinutes: number # how long to run the job before automatically cancelling
  cancelTimeoutInMinutes: number # how much time to give 'run always even if cancelled tasks' before killing them
  variables: # several syntaxes, see specific section
  steps: [ script | bash | pwsh | powershell | checkout | task | templateReference ]
  services: { string: string | container } # container resources to run as a service container
  uses: # Any resources (repos or pools) required by this job that are not already referenced
    repositories: [ string ] # Repository references to Azure Git repositories
    pools: [ string ] # Pool names, typically when using a matrix strategy for the job
jobs:
- job: string  # name of the job (A-Z, a-z, 0-9, and underscore)
  displayName: string  # friendly name to display in the UI
  dependsOn: string | [ string ]
  condition: string
  strategy:
    parallel: # parallel strategy; see the following "Parallel" topic
    matrix: # matrix strategy; see the following "Matrix" topic
    maxParallel: number # maximum number of matrix jobs to run simultaneously
  continueOnError: boolean  # 'true' if future jobs should run even if this job fails; defaults to 'false'
  pool: pool # see the following "Pool" schema
  workspace:
    clean: outputs | resources | all # what to clean up before the job runs
  container: containerReference # container to run this job inside of
  timeoutInMinutes: number # how long to run the job before automatically cancelling
  cancelTimeoutInMinutes: number # how much time to give 'run always even if cancelled tasks' before killing them
  variables: # several syntaxes, see specific section
  steps: [ script | bash | pwsh | powershell | checkout | task | templateReference ]
  services: { string: string | container } # container resources to run as a service container

Temizleme seçenekleri de dahil olmak üzere çalışma alanları hakkında daha fazla bilgi için, işleriçindeki çalışma alanı konusuna bakın.For more information about workspaces, including clean options, see the workspace topic in Jobs.

Değişkenler, adımlar, havuzlarve sunucu işlerihakkında daha fazla bilgi edinin.Learn more about variables, steps, pools, and server jobs.

Not

Yalnızca bir aşama ve bir işiniz varsa, çalıştırılacak adımları anlatmak için tek iş söz dizimini daha kısa bir yol olarak kullanabilirsiniz.If you have only one stage and one job, you can use single-job syntax as a shorter way to describe the steps to run.

Kapsayıcı başvurusuContainer reference

Kapsayıcı, işler tarafından de destekler.A container is supported by jobs.

container: string # Docker Hub image reference or resource alias
container:
  image: string  # container image name
  options: string  # arguments to pass to container at startup
  endpoint: string  # endpoint for a private container registry
  env: { string: string }  # list of environment variables to add
  # you can also use any of the other supported container attributes

StratejilerStrategies

ve matrix anahtar parallel sözcükleri, bir işi çoğaltmak için birbirini dışlama stratejilerini belirtir.The matrix and parallel keywords specify mutually exclusive strategies for duplicating a job.

MatrisMatrix

Matris kullanımı, her biri farklı girişlere sahip bir işin kopyalarını üretir.Use of a matrix generates copies of a job, each with different input. Bu kopyalar farklı yapılandırmalara veya platform sürümlerine karşı test etmek için kullanışlıdır.These copies are useful for testing against different configurations or platform versions.

strategy:
  matrix: { string1: { string2: string3 } }
  maxParallel: number

Matriste string1'in her oluşması için işin bir kopyası oluşturulur.For each occurrence of string1 in the matrix, a copy of the job is generated. name string1, kopyanın adıdır ve işin adına eklenir.The name string1 is the copy's name and is appended to the name of the job. string2'nin her oluşumları için, işe string3 değerine sahip string2 adlı bir değişken kullanılabilir.For each occurrence of string2, a variable called string2 with the value string3 is available to the job.

Not

Matris yapılandırma adları yalnızca temel Latin alfabesi harflerini (A-Z ve a-z), basamakları (0-9) ve alt çizgilerini ( ) _ içermeli.Matrix configuration names must contain only basic Latin alphabet letters (A-Z and a-z), digits (0-9), and underscores (_). Bir harfle başlamaları gerekir.They must start with a letter. Ayrıca, uzunlukları 100 veya daha az karakter olmalıdır.Also, their length must be 100 characters or fewer.

İsteğe maxParallel bağlı anahtar sözcüğü, aynı anda çalıştırıla en fazla eş zamanlı matris matrisi sayısını belirtir.The optional maxParallel keyword specifies the maximum number of simultaneous matrix legs to run at once.

maxParallelBelirtilmezse veya 0 olarak ayarlanırsa sınır uygulanmaz.If maxParallel is unspecified or set to 0, no limit is applied.

maxParallelBelirtilmezse sınır uygulanmaz.If maxParallel is unspecified, no limit is applied.

Not

Söz matrix dizimi otomatik iş ölçeklendirmeyi desteklemez, ancak anahtar sözcüğünü kullanarak benzer işlevler each gerçekleştirebilirsiniz.The matrix syntax doesn't support automatic job scaling but you can implement similar functionality using the each keyword. Örnek için ifadelerine bakın.For an example, see expressions.

ParalelParallel

Bu strateji, bir işin kaç tane tekrardan çalışacağını belirtir.This strategy specifies how many duplicates of a job should run. Büyük bir test matrisini Dilimleme için faydalıdır.It's useful for slicing up a large test matrix. Visual Studio test görevi , test yükünün zamanlanan iş sayısı arasında nasıl bölüneceği hakkında anlamalar.The Visual Studio Test task understands how to divide the test load across the number of scheduled jobs.

strategy:
  parallel: number

Dağıtım işiDeployment job

Dağıtım işi özel bir iş türüdür.A deployment job is a special type of job. Bu, ortamda sırayla çalıştırılacak adımlar koleksiyonudur.It's a collection of steps to run sequentially against the environment. YAML işlem hatları içinde, dağıtım adımlarınızı bir dağıtım işine yerleştirmenizi öneririz.In YAML pipelines, we recommend that you put your deployment steps in a deployment job.

jobs:
- deployment: string   # name of the deployment job, A-Z, a-z, 0-9, and underscore. The word "deploy" is a keyword and is unsupported as the deployment name.
  displayName: string  # friendly name to display in the UI
  pool:                # see pool schema
    name: string       # Use only global level variables for defining a pool name. Stage/job level variables are not supported to define pool name.
    demands: string | [ string ]
  workspace:
    clean: outputs | resources | all # what to clean up before the job runs
  dependsOn: string
  condition: string
  continueOnError: boolean                # 'true' if future jobs should run even if this job fails; defaults to 'false'
  container: containerReference # container to run this job inside
  services: { string: string | container } # container resources to run as a service container
  timeoutInMinutes: nonEmptyString        # how long to run the job before automatically cancelling
  cancelTimeoutInMinutes: nonEmptyString  # how much time to give 'run always even if cancelled tasks' before killing them
  variables: # several syntaxes, see specific section
  environment: string  # target environment name and optionally a resource name to record the deployment history; format: <environment-name>.<resource-name>
  strategy:
    runOnce:    #rolling, canary are the other strategies that are supported
      deploy:
        steps: [ script | bash | pwsh | powershell | checkout | task | templateReference ]

AdımlarSteps

Bir adım, bir işi oluşturan bir dizi işlemin doğrusal bir sırasıdır.A step is a linear sequence of operations that make up a job. Her adım aracıdaki kendi sürecinde çalışır ve yerel bir sabit sürücüdeki işlem hattı çalışma alanına erişebilir.Each step runs in its own process on an agent and has access to the pipeline workspace on a local hard drive. Bu davranış, adımlar arasında ortam değişkenlerinin korunmayacağı ancak dosya sistemi değişiklikleri olduğu anlamına gelir.This behavior means environment variables aren't preserved between steps but file system changes are.

steps: [ script | bash | pwsh | powershell | checkout | task | templateReference ]

Adımlar hakkında daha fazla bilgi için bkz. şema başvuruları:For more information about steps, see the schema references for:

Tüm adımlar, bu makalede belgelenip belgelenmediğine bakılmaksızın aşağıdaki özellikleri destekler:All steps, regardless of whether they're documented in this article, support the following properties:

  • displayNamedisplayName
  • adaname
  • koşulcondition
  • continueOnErrorcontinueOnError
  • etkinletirenabled
  • envenv
  • timeoutInMinutestimeoutInMinutes

DeğişkenlerVariables

Doğrudan sabit kodlu değerler ekleyebilir, değişken gruplarına başvurabilir veyadeğişken şablonları aracılığıyla insert kullanabilirsiniz.You can add hard-coded values directly, reference variable groups, or insert via variable templates.

İşlem hattı, aşama veya iş düzeyinde değişkenleri belirtin.Specify variables at the pipeline, stage, or job level.

Basit bir sabit kodlu değişken kümesi için şu eşleme söz dizimlerini kullanın:For a simple set of hard-coded variables, use this mapping syntax:

variables: { string: string }

Değişken gruplarını dahil etmek için şu dizi söz dizim sırasına geçişin:To include variable groups, switch to this sequence syntax:

variables:
- name: string  # name of a variable
  value: string # value of the variable
- group: string # name of a variable group

ve çiftlerini name / value group yineler.You can repeat name/value pairs and group.

Güvenliği artırmak için değişkenler salt okunur olarak da ayarlandır.Variables can also be set as read only to enhance security.

variables:
- name: myReadOnlyVar
  value: myValue
  readonly: true

Şablonlardan değişkenleri de dahil edersiniz.You can also include variables from templates.

Şablon başvurularıTemplate references

Not

tüm biçimlerini ifade eden tam şablon ifadesisöz dizimlerini gördüğünüzden emin ${{ }} olun.Be sure to see the full template expression syntax, which is all forms of ${{ }}.

İşlem hattınızı yeniden kullanılabilir bölümlerini ayrı bir dosyaya aktarabilirsiniz.You can export reusable sections of your pipeline to a separate file. Bu ayrı dosyalar şablon olarak bilinir.These separate files are known as templates.

Azure Pipelines dört tür şablonu destekler:Azure Pipelines supports four kinds of templates:

Ayrıca, bir işlem hattında izin verilenleri kontrol etmek ve parametrelerin nasıl kullanıllarını tanımlamak için de şablonları kullanabilirsiniz.You can also use templates to control what is allowed in a pipeline and to define how parameters can be used.

İşlem hattınızı yeniden kullanılabilir bölümlerini dosyaları ayırmak için dışarı aktarabilirsiniz.You can export reusable sections of your pipeline to separate files. Bu ayrı dosyalar şablon olarak bilinir.These separate files are known as templates. Azure DevOps Server 2019 şu iki tür şablonu destekler:Azure DevOps Server 2019 supports these two kinds of templates:

Şablonların kendi içinde başka şablonlar da olabilir.Templates themselves can include other templates. Azure Pipelines tek bir işlem hattında en fazla 50 benzersiz şablon dosyasını destekler.Azure Pipelines supports a maximum of 50 unique template files in a single pipeline.

Aşama şablonlarıStage templates

Bir dosya içinde bir dizi aşama tanımlayabilir ve diğer dosyalarda birden çok kez kullanabilirsiniz.You can define a set of stages in one file and use it multiple times in other files.

Ana ardışık düzende:In the main pipeline:

- template: string # name of template to include
  parameters: { string: any } # provided parameters

Dahil edilen şablonda:In the included template:

parameters: { string: any } # expected parameters
stages: [ stage ]

İş şablonlarıJob templates

Bir dosya içinde bir dizi işi tanımlayabilir ve diğer dosyalarda birden çok kez kullanabilirsiniz.You can define a set of jobs in one file and use it multiple times in other files.

Ana ardışık düzende:In the main pipeline:

- template: string # name of template to include
  parameters: { string: any } # provided parameters

Dahil edilen şablonda:In the included template:

parameters: { string: any } # expected parameters
jobs: [ job ]

İş şablonlarıyla çalışma hakkında daha fazla bilgi için bkz. Şablonlar .See templates for more about working with job templates.

Adım şablonlarıStep templates

Bir dosyada adım kümesi tanımlayabilir ve bunu başka bir dosyada birden çok kez kullanabilirsiniz.You can define a set of steps in one file and use it multiple times in another file.

Ana ardışık düzende:In the main pipeline:

steps:
- template: string  # reference to template
  parameters: { string: any } # provided parameters

Dahil edilen şablonda:In the included template:

parameters: { string: any } # expected parameters
steps: [ script | bash | pwsh | powershell | checkout | task | templateReference ]

Şablonlarla çalışma hakkında daha fazla bilgi için bkz. Şablonlar .See templates for more about working with templates.

Değişken şablonlarıVariable templates

Bir dosyada bir değişken kümesi tanımlayabilir ve bunu diğer dosyalarda birden çok kez kullanabilirsiniz.You can define a set of variables in one file and use it multiple times in other files.

Ana işlem hattında:In the main pipeline:

- template: string            # name of template file to include
  parameters: { string: any } # provided parameters

Dahil edilen şablonda:In the included template:

parameters: { string: any }   # expected parameters
variables: [ variable ]

Not

anahtar variables sözcüğü iki söz dizimi biçimi kullanır: dizi ve eşleme.The variables keyword uses two syntax forms: sequence and mapping. Eşleme söz dizimlerinde, tüm anahtarlar değişken adlarıdır ve değerleri değişken değerleridir.In mapping syntax, all keys are variable names and their values are variable values. Değişken şablonlarını kullanmak için sıra söz dizimi kullansanız gerekir.To use variable templates, you must use sequence syntax. Dizi söz dizimi, bir değişkenden ( ), değişken grubundan ( ) veya name şablondan ( group ) bahsetmeyi belirtmenizi template gerektirir.Sequence syntax requires you to specify whether you're mentioning a variable (name), a variable group (group), or a template (template). Daha fazla bilgi için değişkenler konu başlığına bakın.See the variables topic for more.

ParametrelerParameters

Parametreleri şablonlarda ve işlem hatlarında kullanabilirsiniz.You can use parameters in templates and pipelines.

Parametre tanımlarken tür ve ad alanları gereklidir.The type and name fields are required when defining parameters. Tüm parametre veri türlerine bakın.See all parameter data types.

parameters:
- name: string          # name of the parameter; required
  type: enum            # data types, see below
  default: any          # default value; if no default, then the parameter MUST be given by the user at runtime
  values: [ string ]    # allowed list of values (for some data types)

TürlerTypes

Veri türüData type NotlarNotes
string stringstring
number kısıtlanmış olabilir values: , aksi takdirde herhangi bir sayı benzeri dize kabul edilirmay be restricted to values:, otherwise any number-like string is accepted
boolean true veya falsetrue or false
object herhangi bir YAML yapısıany YAML structure
step tek bir adıma single step
stepList adım sırasısequence of steps
job tek bir işa single job
jobList dizisisequence of jobs
deployment tek bir dağıtım işia single deployment job
deploymentList Dağıtım işlerinin sırasısequence of deployment jobs
stage tek bir aşamaa single stage
stageList aşamaların sırasısequence of stages

Adım, stepList, iş, jobList, Deployment, deploymentList, aşama ve stageList veri türleri hepsi standart YAML şema biçimini kullanır.The step, stepList, job, jobList, deployment, deploymentList, stage, and stageList data types all use standard YAML schema format. Bu örnek dize, sayı, Boolean, nesne, adım ve stepList içerir.This example includes string, number, boolean, object, step, and stepList.

parameters:
- name: myString
  type: string
  default: a string
- name: myMultiString
  type: string
  default: default
  values:
  - default
  - ubuntu
- name: myNumber
  type: number
  default: 2
  values:
  - 1
  - 2
  - 4
  - 8
  - 16
- name: myBoolean
  type: boolean
  default: true
- name: myObject
  type: object
  default:
    foo: FOO
    bar: BAR
    things:
    - one
    - two
    - three
    nested:
      one: apple
      two: pear
      count: 3
- name: myStep
  type: step
  default:
    script: echo my step
- name: mySteplist
  type: stepList
  default:
    - script: echo step one
    - script: echo step two

trigger: none

jobs: 
- job: stepList
  steps: ${{ parameters.mySteplist }}
- job: myStep
  steps:
    - ${{ parameters.myStep }}

KaynaklarResources

Kaynak, işlem hattınız kapsamında tüketilen herhangi bir dış hizmettir.A resource is any external service that is consumed as part of your pipeline. Kaynağa örnek olarak şunları üreten başka bir CI/CD işlem hattı örnektir:An example of a resource is another CI/CD pipeline that produces:

  • Azure Pipelines veya Jenkins gibi yapıtlar.Artifacts like Azure Pipelines or Jenkins.
  • GitHub, Azure Repos veya git gibi kod depoları.Code repositories like GitHub, Azure Repos, or Git.
  • Kapsayıcı-Azure Container Registry veya Docker Hub gibi görüntü kayıt defterleri.Container-image registries like Azure Container Registry or Docker hub.

YAML 'deki kaynaklar, işlem hatları, kapsayıcılar, depolar ve türlerin kaynaklarını temsil eder.Resources in YAML represent sources of pipelines, containers, repositories, and types. Kaynaklar hakkında daha fazla bilgi için buraya bakın.For more information on Resources, see here.

Genel şemaGeneral schema

resources:
  pipelines: [ pipeline ]  
  builds: [ build ]
  repositories: [ repository ]
  containers: [ container ]
  packages: [ package ]

İşlem hattı kaynağıPipeline resource

Yapıtlar üreten bir Azure işlem hattına sahipseniz, işlem hattı pipeline bir işlem hattı kaynağı tanımlamak için anahtar sözcüğünü kullanarak yapıtları kullanabilir.If you have an Azure pipeline that produces artifacts, your pipeline can consume the artifacts by using the pipeline keyword to define a pipeline resource. İşlem hattı tamamlama tetikleyicilerinide etkinleştirebilirsiniz.You can also enable pipeline-completion triggers.

resources:
  pipelines:
  - pipeline: string  # identifier for the resource used in pipeline resource variables
    project: string # project for the source; optional for current project
    source: string  # name of the pipeline that produces an artifact
    version: string  # the pipeline run number to pick the artifact, defaults to latest pipeline successful across all stages; Used only for manual or scheduled triggers
    branch: string  # branch to pick the artifact, optional; defaults to all branches; Used only for manual or scheduled triggers
    tags: [ string ] # list of tags required on the pipeline to pickup default artifacts, optional; Used only for manual or scheduled triggers
    trigger:     # triggers are not enabled by default unless you add trigger section to the resource
      branches:  # branch conditions to filter the events, optional; Defaults to all branches.
        include: [ string ]  # branches to consider the trigger events, optional; Defaults to all branches.
        exclude: [ string ]  # branches to discard the trigger events, optional; Defaults to none.
      tags: [ string ]  # list of tags to evaluate for trigger event, optional; 2020.1 and greater
      stages: [ string ] # list of stages to evaluate for trigger event, optional; 2020.1 and greater

Önemli

Bir kaynak tetikleyicisi tanımladığınızda, işlem hattı kaynağı geçerli ardışık düzen ile aynı depoyla tetiklendiğinde, tetikleme aynı dalı izler ve etkinliğin oluşturulduğu işleme alır.When you define a resource trigger, if its pipeline resource is from the same repo as the current pipeline, triggering follows the same branch and commit on which the event is raised. Ancak işlem hattı kaynağı farklı bir deposa, el ile ve zamanlanmış yapılar ayarı Için varsayılan dal tarafından belirtilen dalda geçerli işlem hattı tetiklenir.But if the pipeline resource is from a different repo, the current pipeline is triggered on the branch specified by the Default branch for manual and scheduled builds setting. Daha fazla bilgi için bkz. işlem hattı tamamlama Tetikleyicileri Için dal konuları.For more information, see Branch considerations for pipeline completion triggers.

Önceden tanımlanmış değişkenler olarak işlem hattı kaynak meta verileriThe pipeline resource metadata as predefined variables

Her çalıştırmada, bir işlem hattı kaynağı için meta veriler, önceden tanımlanmış bu değişkenler olarak tüm işler için kullanılabilir:In each run, the metadata for a pipeline resource is available to all jobs as these predefined variables:

resources.pipeline.<Alias>.projectName
resources.pipeline.<Alias>.projectID
resources.pipeline.<Alias>.pipelineName
resources.pipeline.<Alias>.pipelineID
resources.pipeline.<Alias>.runName
resources.pipeline.<Alias>.runID
resources.pipeline.<Alias>.runURI
resources.pipeline.<Alias>.sourceBranch
resources.pipeline.<Alias>.sourceCommit
resources.pipeline.<Alias>.sourceProvider
resources.pipeline.<Alias>.requestedFor
resources.pipeline.<Alias>.requestedForID

Bir görevi kullanarak bir işlem hattı kaynağından yapıları kullanabilirsiniz download .You can consume artifacts from a pipeline resource by using a download task. Bkz. Download anahtar sözcüğü.See the download keyword.

Kapsayıcı kaynağıContainer resource

Kapsayıcı işleri , araç ve bağımlılıklarınızı bir kapsayıcı içinde yalıtmanızı sağlar.Container jobs let you isolate your tools and dependencies inside a container. Aracı belirtilen kapsayıcının bir örneğini başlatır ve ardından içinde adımları çalıştırır.The agent launches an instance of your specified container then runs steps inside it. containerAnahtar sözcüğü, kapsayıcı görüntülerinizi belirtmenize olanak tanır.The container keyword lets you specify your container images.

Hizmet kapsayıcıları, veritabanları gibi çeşitli bağımlılıklar sağlamak için bir işle birlikte çalışır.Service containers run alongside a job to provide various dependencies like databases.

resources:
  containers:
  - container: string  # identifier (A-Z, a-z, 0-9, and underscore)
    image: string  # container image name
    options: string  # arguments to pass to container at startup
    endpoint: string  # reference to a service connection for the private registry
    env: { string: string }  # list of environment variables to add
    ports: [ string ] # ports to expose on the container
    volumes: [ string ] # volumes to mount on the container
    mapDockerSocket: bool # whether to map in the Docker daemon socket; defaults to true
    mountReadOnly:  # volumes to mount read-only - all default to false
      externals: boolean  # components required to talk to the agent
      tasks: boolean  # tasks required by the job
      tools: boolean  # installable tools like Python and Ruby
      work: boolean # the work directory
resources:
  containers:
  - container: string  # identifier (A-Z, a-z, 0-9, and underscore)
    image: string  # container image name
    options: string  # arguments to pass to container at startup
    endpoint: string  # reference to a service connection for the private registry
    env: { string: string }  # list of environment variables to add
    ports: [ string ] # ports to expose on the container
    volumes: [ string ] # volumes to mount on the container
    mapDockerSocket: bool # whether to map in the Docker daemon socket; defaults to true
resources:
  containers:
  - container: string  # identifier (A-Z, a-z, 0-9, and underscore)
    image: string  # container image name
    options: string  # arguments to pass to container at startup
    endpoint: string  # reference to a service connection for the private registry
    env: { string: string }  # list of environment variables to add
    ports: [ string ] # ports to expose on the container
    volumes: [ string ] # volumes to mount on the container

Depo kaynağıRepository resource

İşlem hattınız başka bir depoda şablonlara sahipse,sisteme bu depo hakkında bilgi verebilirsiniz.If your pipeline has templates in another repository, you must let the system know about that repository. anahtar repository sözcüğü bir dış depo belirtmenize olanak sağlar.The repository keyword lets you specify an external repository.

İşlem hattınız başkabir depoda şablonlara sahipse veya hizmet bağlantısı gerektiren bir depoyla çoklu depo kullanımı kullanmak için sisteme bu depo hakkında bilgi verebilirsiniz.If your pipeline has templates in another repository, or if you want to use multi-repo checkout with a repository that requires a service connection, you must let the system know about that repository. anahtar repository sözcüğü bir dış depo belirtmenize olanak sağlar.The repository keyword lets you specify an external repository.

resources:
  repositories:
  - repository: string  # identifier (A-Z, a-z, 0-9, and underscore)
    type: enum  # see the following "Type" topic
    name: string  # repository name (format depends on `type`)
    ref: string  # ref name to use; defaults to 'refs/heads/main'
    endpoint: string  # name of the service connection to use (for types that aren't Azure Repos)
    trigger:  # CI trigger for this repository, no CI trigger if skipped (only works for Azure Repos)
      branches:
        include: [ string ] # branch names which will trigger a build
        exclude: [ string ] # branch names which will not
      tags:
        include: [ string ] # tag names which will trigger a build
        exclude: [ string ] # tag names which will not
      paths:
        include: [ string ] # file paths which must match to trigger a build
        exclude: [ string ] # file paths which will not trigger a build

TürType

İşlem hatları depo türü için aşağıdaki değerleri destekler: git , github ve bitbucket .Pipelines support the following values for the repository type: git, github, and bitbucket. Türü git Git depoları Azure Repos ifade eder.The git type refers to Azure Repos Git repos.

  • type: gitbelirtirsanız, değer aynı proje içinde başka bir name depoya başvurur.If you specify type: git, the name value refers to another repository in the same project. name: otherRepo bunun bir örneğidir.An example is name: otherRepo. Aynı kuruluş içindeki başka bir proje içindeki bir repoya başvurmak için, adın önüne projenin adını ön ek olarak yazın.To refer to a repo in another project within the same organization, prefix the name with that project's name. name: OtherProject/otherRepo bunun bir örneğidir.An example is name: OtherProject/otherRepo.

  • type: githubbelirtirsanız, name değer GitHub deposünün tam adıdır ve kullanıcı veya kuruluşu içerir.If you specify type: github, the name value is the full name of the GitHub repo and includes the user or organization. name: Microsoft/vscode bunun bir örneğidir.An example is name: Microsoft/vscode. GitHub depoları yetkilendirme için bir GitHub hizmet bağlantısı gerektirir.GitHub repos require a GitHub service connection for authorization.

  • type: bitbucketbelirtirsanız, name değer Bitbucket Cloud repo'nun tam adıdır ve kullanıcı veya kuruluşu içerir.If you specify type: bitbucket, the name value is the full name of the Bitbucket Cloud repo and includes the user or organization. name: MyBitbucket/vscode bunun bir örneğidir.An example is name: MyBitbucket/vscode. Bitbucket Cloud depoları yetkilendirme için bir Bitbucket Cloud hizmeti bağlantısı gerektirir.Bitbucket Cloud repos require a Bitbucket Cloud service connection for authorization.

Paket kaynağıPackages resource

YAML işlem hatlarında kaynak olarak NuGet ve npm GitHub paketlerini kullanabilirsiniz.You can consume NuGet and npm GitHub packages as a resource in YAML pipelines. Paket kaynaklarını belirtirken paketi veya olarak NuGet npm ayarlayın.When specifying package resources, set the package as NuGet or npm.

resources:
  packages:
    - package: myPackageAlias # alias for the package resource
      type: Npm # type of the package NuGet/npm
      connection: GitHubConnectionName # Github service connection with the PAT type
      name: nugetTest/nodeapp # <Repository>/<Name of the package>
      version: 1.0.1 # Version of the packge to consume; Optional; Defaults to latest
      trigger: true # To enable automated triggers (true/false); Optional; Defaults to no triggers

TetikleyicilerTriggers

Not

Tetikleyici blokları, değişken veya şablon ifadesi içeremez.Trigger blocks can't contain variables or template expressions.

Gönderim tetikleyicisiPush trigger

İtme tetikleyicisi, hangi dalların sürekli bir tümleştirme derlemesinin çalışmasına neden olduğunu belirtir.A push trigger specifies which branches cause a continuous integration build to run. Gönderme tetikleyicisi belirtmezseniz, herhangi bir dala gönderim bir derlemeyi tetikler.If you specify no push trigger, pushes to any branch trigger a build. Tetikleyiciler ve bunların nasıl belirtilmesi hakkında daha fazla bilgi edinin.Learn more about triggers and how to specify them.

Anahtar sözcüğü için üç farklı sözdizimi seçeneği vardır trigger : dahil edilecek dalların listesi, CI tetikleyicilerini devre dışı bırakma yöntemi ve tam denetim için tam sözdizimi.There are three distinct syntax options for the trigger keyword: a list of branches to include, a way to disable CI triggers, and the full syntax for complete control.

Liste sözdizimi:List syntax:

trigger: [ string ] # list of branch names

Disablement sözdizimi:Disablement syntax:

trigger: none # will disable CI builds entirely

Tam sözdizimi:Full syntax:

trigger:
  batch: boolean # batch changes if true; start a new build for every push if false (default)
  branches:
    include: [ string ] # branch names which will trigger a build
    exclude: [ string ] # branch names which will not
  tags:
    include: [ string ] # tag names which will trigger a build
    exclude: [ string ] # tag names which will not
  paths:
    include: [ string ] # file paths which must match to trigger a build
    exclude: [ string ] # file paths which will not trigger a build

exclude include ,, Veya için yan tümce olmadan bir yan tümce belirtirseniz, branches tags paths * include yan tümcesinde belirtmeye eşdeğerdir.If you specify an exclude clause without an include clause for branches, tags, or paths, it is equivalent to specifying * in the include clause.

trigger:
  batch: boolean # batch changes if true; start a new build for every push if false (default)
  branches:
    include: [ string ] # branch names which will trigger a build
    exclude: [ string ] # branch names which will not
  paths:
    include: [ string ] # file paths which must match to trigger a build
    exclude: [ string ] # file paths which will not trigger a build

Önemli

Bir tetikleyici belirttiğinizde, yalnızca ekleme için açıkça yapılandırdığınız dallar bir işlem hattı tetikler.When you specify a trigger, only branches that you explicitly configure for inclusion trigger a pipeline. Eklemeler önce işlenir ve sonra Dışlamalar bu listeden kaldırılır.Inclusions are processed first, and then exclusions are removed from that list. Bir dışlama belirtirseniz ancak eklemeler yoksa, hiçbir şey tetiklemez.If you specify an exclusion but no inclusions, nothing triggers.

PR tetikleyicisiPR trigger

Çekme isteği tetikleyicisi, çekme isteği derlemenin çalışmasına neden olan dalları belirtir.A pull request trigger specifies which branches cause a pull request build to run. Çekme isteği tetikleyicisi belirtmezseniz, herhangi bir dala yapılan çekme istekleri bir derlemeyi tetikler.If you specify no pull request trigger, pull requests to any branch trigger a build. Çekme isteği tetikleyicileri ve bunları belirtme hakkında daha fazla bilgi.Learn more about pull request triggers and how to specify them.

Önemli

YAML PR tetikleyicileri yalnızca GitHub ve Bitbucket Cloud'da de desteklenir.YAML PR triggers are supported only in GitHub and Bitbucket Cloud. Git'te Azure Repos, derleme işlem hattınızı doğrulama için tetiklemek üzere derleme doğrulaması için bir dal ilkesi yapılandırarak.If you use Azure Repos Git, you can configure a branch policy for build validation to trigger your build pipeline for validation.

Önemli

YAML PR tetikleyicileri yalnızca GitHub'da de desteklenir.YAML PR triggers are supported only in GitHub. Git'te Azure Repos, derleme işlem hattınızı doğrulama için tetiklemek üzere derleme doğrulaması için bir dal ilkesi yapılandırarak.If you use Azure Repos Git, you can configure a branch policy for build validation to trigger your build pipeline for validation.

anahtar sözcüğü için üç ayrı söz dizimi seçeneği vardır: dahil etmek istediğiniz dalların listesi, ÇEKME çekme işlemi tetikleyicilerini devre dışı bırakmanın bir yolu ve tam denetim için pr tam söz dizimi.There are three distinct syntax options for the pr keyword: a list of branches to include, a way to disable PR triggers, and the full syntax for complete control.

Liste söz dizimi:List syntax:

pr: [ string ] # list of branch names

Devre dışı bırakma söz dizimi:Disablement syntax:

pr: none # will disable PR builds entirely; will not disable CI triggers

Tam söz dizimi:Full syntax:

pr:
  autoCancel: boolean # indicates whether additional pushes to a PR should cancel in-progress runs for the same PR. Defaults to true
  branches:
    include: [ string ] # branch names which will trigger a build
    exclude: [ string ] # branch names which will not
  paths:
    include: [ string ] # file paths which must match to trigger a build
    exclude: [ string ] # file paths which will not trigger a build
pr:
  autoCancel: boolean # indicates whether additional pushes to a PR should cancel in-progress runs for the same PR. Defaults to true
  branches:
    include: [ string ] # branch names which will trigger a build
    exclude: [ string ] # branch names which will not
  paths:
    include: [ string ] # file paths which must match to trigger a build
    exclude: [ string ] # file paths which will not trigger a build
  drafts: boolean # For GitHub only, whether to build draft PRs, defaults to true

veya için yan tümcesi olmayan bir yan tümce exclude include belirtirsiniz, yan branches paths tümcesinde * belirtmeye include eşdeğerdir.If you specify an exclude clause without an include clause for branches or paths, it is equivalent to specifying * in the include clause.

Önemli

Bir çekme isteği tetikleyicisi belirttiğinizde, yalnızca ekleme için açıkça yapılandırmış olduğunuz dallar bir işlem hattını tetikler.When you specify a pull request trigger, only branches that you explicitly configure for inclusion trigger a pipeline. Eklemeler önce işlenir ve ardından bu listeden dışlamalar kaldırılır.Inclusions are processed first, and then exclusions are removed from that list. Dışlama belirtmenize ama dahil edilmememe durumlarını tetiklemezsiniz.If you specify an exclusion but no inclusions, nothing triggers.

Zamanlanmış tetikleyiciScheduled trigger

YAML zamanlanmış tetikleyicileri bu sürümde veya Azure DevOps Server Visual Studio Team Foundation Server.YAML scheduled triggers are unavailable in either this version of Azure DevOps Server or Visual Studio Team Foundation Server. Zamanlanmış Tetikleyicileri klasik düzenleyicidekullanabilirsiniz.You can use scheduled triggers in the classic editor.

Zamanlanan tetikleyici, dalların oluşturulduğu bir zamanlamayı belirtir.A scheduled trigger specifies a schedule on which branches are built. Zamanlanmış tetikleyici belirtmezseniz, zamanlanmış hiçbir derleme gerçekleşmez.If you specify no scheduled trigger, no scheduled builds occur. Zamanlanmış Tetikleyiciler ve bunların nasıl kullanılacağı hakkında daha fazla bilgi edinin.Learn more about scheduled triggers and how to specify them.

schedules:
- cron: string # cron syntax defining a schedule in UTC time
  displayName: string # friendly name given to a specific schedule
  branches:
    include: [ string ] # which branches the schedule applies to
    exclude: [ string ] # which branches to exclude from the schedule
  always: boolean # whether to always run the pipeline or only if there have been source code changes since the last successful scheduled run. The default is false.

Not

excludeİçin yan tümcesi olmadan bir yan tümce belirtirseniz include branches , * include yan tümcesinde belirtmeye eşdeğerdir.If you specify an exclude clause without an include clause for branches, it is equivalent to specifying * in the include clause.

İşlem hattı tetikleyicisiPipeline trigger

İşlem hattı tamamlanma Tetikleyicileri, bir işlem hattı kaynağıkullanılarak yapılandırılır.Pipeline completion triggers are configured using a pipeline resource. Daha fazla bilgi için bkz. işlem hattı tamamlama Tetikleyicileri.For more information, see Pipeline completion triggers.

HavuzPool

poolAnahtar sözcüğü, işlem hattının bir işi için hangi havuzun kullanılacağını belirtir.The pool keyword specifies which pool to use for a job of the pipeline. Bir pool Belirtim Ayrıca işin çalıştırılmasına ilişkin stratejisiyle ilgili bilgileri de içerir.A pool specification also holds information about the job's strategy for running.

Azure DevOps Server 2019 ' de, YAML 'de iş düzeyinde ve işlem hattı ayarları Kullanıcı arabirimindeki ardışık düzen düzeyinde bir havuz belirtebilirsiniz.In Azure DevOps Server 2019 you can specify a pool at the job level in YAML, and at the pipeline level in the pipeline settings UI. Azure DevOps Server 2019,1 ' de, tek bir örtük işiniz varsa YAML 'de işlem hattı düzeyinde bir havuz da belirtebilirsiniz.In Azure DevOps Server 2019.1 you can also specify a pool at the pipeline level in YAML if you have a single implicit job.

İşlem hattı, aşama veya iş düzeyinde bir havuz belirtebilirsiniz.You can specify a pool at the pipeline, stage, or job level.

Hiyerarşinin en düşük düzeyinde belirtilen havuz, işi çalıştırmak için kullanılır.The pool specified at the lowest level of the hierarchy is used to run the job.

Tam sözdizimi şöyledir:The full syntax is:

pool:
  name: string  # name of the pool to run this job in
  demands: string | [ string ]  # see the following "Demands" topic
  vmImage: string # name of the VM image you want to use; valid only in the Microsoft-hosted pool

Microsoft tarafından barındırılan bir havuz kullanıyorsanız, kullanılabilir bir sanal makine görüntüsü seçin.If you use a Microsoft-hosted pool, choose an available virtual machine image.

Özel havuz kullanıyorsanız ve talepleri belirtmenize gerek yoksa söz dizimlerini şu şekilde kısaltabilirsiniz:If you use a private pool and don't need to specify demands, you can shorten the syntax to:

pool: string # name of the private pool to run this job in

Koşullar ve zaman aşımı hakkında daha fazla bilgi.Learn more about conditions and timeouts.

TalepDemands

anahtar demands sözcüğü özel havuzlar tarafından de destekler.The demands keyword is supported by private pools. Bir özelliğin veya belirli bir dizenin varlığını kontrol edin.You can check for the existence of a capability or a specific string.

pool:
  demands: [ string ]

OrtamEnvironment

environmentanahtar sözcüğü, işlem hattının dağıtım işi tarafından hedeflenen ortamı veya kaynağını belirtir.The environment keyword specifies the environment or its resource that is targeted by a deployment job of the pipeline. Ortam, işin içinde tanımlanan adımları çalıştırmaya ilişkin dağıtım stratejisiyle ilgili bilgileri de içerir.An environment also holds information about the deployment strategy for running the steps defined inside the job.

Tam söz dizimi şu şekildedir:The full syntax is:

environment:                # create environment and/or record deployments
  name: string              # name of the environment to run this job on.
  resourceName: string      # name of the resource in the environment to record the deployments against
  resourceId: number        # resource identifier
  resourceType: string      # type of the resource you want to target. Supported types - virtualMachine, Kubernetes
  tags: string | [ string ] # tag names to filter the resources in the environment
strategy:                 # deployment strategy
  runOnce:                # default strategy
    deploy:
      steps:
      - script: echo Hello world

Bir ortamı veya kaynaklarından birini belirtir ancak diğer özellikleri belirtmenize gerek yoksa söz dizimini şu şekilde kısaltabilirsiniz:If you specify an environment or one of its resources but don't need to specify other properties, you can shorten the syntax to:

environment: environmentName.resourceName
strategy:                 # deployment strategy
  runOnce:              # default strategy
    deploy:
      steps:
      - script: echo Hello world

SunucuServer

değeri server bir sunucu işini belirtir.The server value specifies a server job. Yalnızca Bir Azure işlev uygulamasını faturalama gibi sunucu görevleri bir sunucu işi içinde çalıştırabilirsiniz.Only server tasks like invoking an Azure function app can be run in a server job.

'i server kullanırken, bir iş aracı işi yerine sunucu işi olarak çalışır.When you use server, a job runs as a server job rather than an agent job.

pool: server

Komut DosyasıScript

anahtar script sözcüğü, komut satırı görevi için bir kısayol sağlar.The script keyword is a shortcut for the command-line task. Görev, Windows ve Bash üzerinde cmd.exe platformları kullanarak bir betik çalıştırır.The task runs a script using cmd.exe on Windows and Bash on other platforms.

steps:
- script: string  # contents of the script to run
  displayName: string  # friendly name displayed in the UI
  name: string  # identifier for this step (A-Z, a-z, 0-9, and underscore)
  workingDirectory: string  # initial working directory for the step
  failOnStderr: boolean  # if the script writes to stderr, should that be treated as the step failing?
  condition: string
  continueOnError: boolean  # 'true' if future steps should run even if this step fails; defaults to 'false'
  enabled: boolean  # whether to run this step; defaults to 'true'
  target:
    container: string # where this step will run; values are the container name or the word 'host'
    commands: enum  # whether to process all logging commands from this step; values are `any` (default) or `restricted`
  timeoutInMinutes: number
  env: { string: string }  # list of environment variables to add

Komut modu belirtmezseniz yapıyı şu şekilde target kısaltabilirsiniz:If you don't specify a command mode, you can shorten the target structure to:

- script:
  target: string  # container name or the word 'host'

Koşullar, zaman aşımı ve adım hedeflerihakkında daha fazla bilgi edinin.Learn more about conditions, timeouts, and step targets.

BashBash

bashAnahtar sözcüğü, kabuk betiği göreviiçin bir kısayoldur.The bash keyword is a shortcut for the shell script task. Görev, Windows, macOS ve Linux 'ta Bash içinde bir komut dosyası çalıştırır.The task runs a script in Bash on Windows, macOS, and Linux.

steps:
- bash: string  # contents of the script to run
  displayName: string  # friendly name displayed in the UI
  name: string  # identifier for this step (A-Z, a-z, 0-9, and underscore)
  workingDirectory: string  # initial working directory for the step
  failOnStderr: boolean  # if the script writes to stderr, should that be treated as the step failing?
  condition: string
  continueOnError: boolean  # 'true' if future steps should run even if this step fails; defaults to 'false'
  enabled: boolean  # whether to run this step; defaults to 'true'
  target:
    container: string # where this step will run; values are the container name or the word 'host'
    commands: enum  # whether to process all logging commands from this step; values are `any` (default) or `restricted`
  timeoutInMinutes: number
  env: { string: string }  # list of environment variables to add

Bir komut modu belirtmezseniz, target yapıyı şu şekilde kısaltabilirsiniz:If you don't specify a command mode, you can shorten the target structure to:

- bash:
  target: string  # container name or the word 'host'

Koşullar, zaman aşımlarıve adım hedeflerihakkında daha fazla bilgi edinin.Learn more about conditions, timeouts, and step targets.

pwshpwsh

pwshAnahtar sözcüğü, bu görevin pwsh değeri true olarak ayarlandığında PowerShell görevi için bir kısayoldur.The pwsh keyword is a shortcut for the PowerShell task when that task's pwsh value is set to true. Görev, Windows, macOS ve Linux 'ta PowerShell Core 'da bir komut dosyası çalıştırır.The task runs a script in PowerShell Core on Windows, macOS, and Linux.

steps:
- pwsh: string  # contents of the script to run
  displayName: string  # friendly name displayed in the UI
  name: string  # identifier for this step (A-Z, a-z, 0-9, and underscore)
  errorActionPreference: enum  # see the following "Error action preference" topic
  ignoreLASTEXITCODE: boolean  # see the following "Ignore last exit code" topic
  failOnStderr: boolean  # if the script writes to stderr, should that be treated as the step failing?
  workingDirectory: string  # initial working directory for the step
  condition: string
  continueOnError: boolean  # 'true' if future steps should run even if this step fails; defaults to 'false'
  enabled: boolean  # whether to run this step; defaults to 'true'
  timeoutInMinutes: number
  env: { string: string }  # list of environment variables to add

Not

Her PowerShell oturumu yalnızca çalıştığı işin süresi boyunca sürer.Each PowerShell session lasts only for the duration of the job in which it runs. Önyüklendi 'e bağlı olan görevler, önyükleme ile aynı işte olmalıdır.Tasks that depend on what has been bootstrapped must be in the same job as the bootstrap.

Koşullar ve zaman aşımlarıhakkında daha fazla bilgi edinin.Learn more about conditions and timeouts.

PowerShellPowerShell

powershellAnahtar sözcüğü, PowerShell göreviiçin bir kısayoldur.The powershell keyword is a shortcut for the PowerShell task. Görev, Windows PowerShell 'de bir komut dosyası çalıştırır.The task runs a script in Windows PowerShell.

steps:
- powershell: string  # contents of the script to run
  displayName: string  # friendly name displayed in the UI
  name: string  # identifier for this step (A-Z, a-z, 0-9, and underscore)
  errorActionPreference: enum  # see the following "Error action preference" topic
  ignoreLASTEXITCODE: boolean  # see the following "Ignore last exit code" topic
  failOnStderr: boolean  # if the script writes to stderr, should that be treated as the step failing?
  workingDirectory: string  # initial working directory for the step
  condition: string
  continueOnError: boolean  # 'true' if future steps should run even if this step fails; defaults to 'false'
  enabled: boolean  # whether to run this step; defaults to 'true'
  timeoutInMinutes: number
  env: { string: string }  # list of environment variables to add

Not

Her PowerShell oturumu yalnızca çalıştığı işin süresi boyunca sürer.Each PowerShell session lasts only for the duration of the job in which it runs. Önyüklendi 'e bağlı olan görevler, önyükleme ile aynı işte olmalıdır.Tasks that depend on what has been bootstrapped must be in the same job as the bootstrap.

Koşullar ve zaman aşımlarıhakkında daha fazla bilgi edinin.Learn more about conditions and timeouts.

Hata eylemi tercihiError action preference

Aksi belirtilmedikçe, hata eylemi tercihi varsayılan değeri alır stop ve satır, $ErrorActionPreference = 'stop' betiğinizin en üstüne eklenir.Unless otherwise specified, the error action preference defaults to the value stop, and the line $ErrorActionPreference = 'stop' is prepended to the top of your script.

Hata eylemi tercihi durdur olarak ayarlandığında, hatalar PowerShell 'in görevi sonlanmasına ve sıfır dışında bir çıkış kodu döndürmesine neden olur.When the error action preference is set to stop, errors cause PowerShell to terminate the task and return a nonzero exit code. Görev Ayrıca başarısız olarak işaretlenir.The task is also marked as Failed.

errorActionPreference: stop | continue | silentlyContinue

Son çıkış kodunu yoksayIgnore last exit code

Betiğinden döndürülen son çıkış kodu varsayılan olarak denetlenir.The last exit code returned from your script is checked by default. Sıfır olmayan bir kod, bir adım hatası olduğunu gösterir ve bu durumda sistem betiğinizi şu şekilde ekler:A nonzero code indicates a step failure, in which case the system appends your script with:

if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE }

Bu davranışı istemiyorsanız ignoreLASTEXITCODE: true belirtin.If you don't want this behavior, specify ignoreLASTEXITCODE: true.

ignoreLASTEXITCODE: boolean

Koşullar ve zaman aşımı hakkında daha fazla bilgi.Learn more about conditions and timeouts.

YayımlamaPublish

anahtar publish sözcüğü, İşlem Hattı Yapıtlarını Yayımla görevinin kısayolu.The publish keyword is a shortcut for the Publish Pipeline Artifact task. Görev, bir dosyayı veya klasörü diğer işlerin ve işlem hatlarının tükettiği işlem hattı yapıtı olarak yayımlar (yükler).The task publishes (uploads) a file or folder as a pipeline artifact that other jobs and pipelines can consume.

steps:
- publish: string # path to a file or folder
  artifact: string # artifact name
  displayName: string  # friendly name to display in the UI

Yapıtları yayımlama hakkında daha fazla bilgi.Learn more about publishing artifacts.

İndirDownload

anahtar download sözcüğü, İşlem Hattı Yapıtı İndirme görevi için bir kısayol sağlar.The download keyword is a shortcut for the Download Pipeline Artifact task. Görev, geçerli çalıştırmayla ilişkili yapıtları veya işlem hattı kaynağı olarak ilişkili başka bir Azure işlem hattından indirir.The task downloads artifacts associated with the current run or from another Azure pipeline that is associated as a pipeline resource.

steps:
- download: [ current | pipeline resource identifier | none ] # disable automatic download if "none"
  artifact: string ## artifact name, optional; downloads all the available artifacts if not specified
  patterns: string # patterns representing files to include; optional
  displayName: string  # friendly name to display in the UI

Yapıt indirme konumuArtifact download location

Geçerli işlem hattından yapıtlar $(Pipeline.Workspace)/ olarak indirilir.Artifacts from the current pipeline are downloaded to $(Pipeline.Workspace)/.

İlişkili işlem hattı kaynağından yapıtlar $(Pipeline.Workspace)/ kaynağına <pipeline resource identifier> / indirilir.Artifacts from the associated pipeline resource are downloaded to $(Pipeline.Workspace)/<pipeline resource identifier>/.

Dağıtım işlerinde otomatik indirmeAutomatic download in deployment jobs

Geçerli işlem hattından ve ilişkili işlem hattı kaynaklarından kullanılabilen tüm yapıtlar dağıtım işlerinde otomatik olarak indirilir ve dağıtımınız için kullanılabilir olur.All available artifacts from the current pipeline and from the associated pipeline resources are automatically downloaded in deployment jobs and made available for your deployment. İndirmeleri önlemek için download: none belirtin.To prevent downloads, specify download: none.

Yapıtları indirme hakkında daha fazla bilgi edinin.Learn more about downloading artifacts.

Kullanıma almaCheckout

Nondeployment işleri otomatik olarak kaynak kodunu kontrol eder.Nondeployment jobs automatically check out source code. Bu davranışı checkout yapılandırmak veya gizlemek için anahtar sözcüğünü kullanın.Use the checkout keyword to configure or suppress this behavior.

steps:
- checkout: self  # self represents the repo where the initial Pipelines YAML file was found
  clean: boolean  # if true, execute `execute git clean -ffdx && git reset --hard HEAD` before fetching
  fetchDepth: number  # the depth of commits to ask Git to fetch (applies to submodules too if they're enabled); defaults to no limit
  lfs: boolean  # whether to download Git-LFS files; defaults to false
  submodules: true | recursive  # set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules; defaults to not checking out submodules
  path: string  # path to check out source code, relative to the agent's build directory (e.g. \_work\1); defaults to a directory called `s`
  persistCredentials: boolean  # if 'true', leave the OAuth token in the Git config after the initial fetch; defaults to false
steps:
- checkout: self | none | repository name # self represents the repo where the initial Pipelines YAML file was found
  clean: boolean  # if true, run `execute git clean -ffdx && git reset --hard HEAD` before fetching
  fetchDepth: number  # the depth of commits to ask Git to fetch; defaults to no limit
  lfs: boolean  # whether to download Git-LFS files; defaults to false
  submodules: true | recursive  # set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules; defaults to not checking out submodules
  path: string  # path to check out source code, relative to the agent's build directory (e.g. \_work\1); defaults to a directory called `s`
  persistCredentials: boolean  # if 'true', leave the OAuth token in the Git config after the initial fetch; defaults to false

Not

kullanarak kullanılabilen temizleme seçeneğine ek checkout olarak, bir çalışma alanında temizlemeyi de yapılandırabilirsiniz.In addition to the cleaning option available using checkout, you can also configuring cleaning in a workspace. Temiz seçenekler de dahil olmak üzere çalışma alanları hakkında daha fazla bilgi için İşler'de çalışma alanı konu başlığına bakın.For more information about workspaces, including clean options, see the workspace topic in Jobs.

Kaynakların tümünü eşitlemesini önlemek için:To avoid syncing sources at all:

steps:
- checkout: none

Not

Aracıyı yerel hizmet hesabında çalıştırıyorsanız ve git işlemlerini kullanarak veya Git alt modüllerini yüklerken geçerli depoyu değiştirmek istiyorsanız, proje koleksiyonu yapı hizmeti hesapları kullanıcısına uygun izinleri verin.If you're running the agent in the Local Service account and want to modify the current repository by using git operations or loading git submodules, give the proper permissions to the Project Collection Build Service Accounts user.

- checkout: self
  submodules: true
  persistCredentials: true

İşlem hattınızda birden çok depo kullanıma almak için birden çok checkout adım kullanın:To check out multiple repositories in your pipeline, use multiple checkout steps:

- checkout: self
- checkout: git://MyProject/MyRepo
- checkout: MyGitHubRepo # Repo declared in a repository resource

Daha fazla bilgi için bkz. işlem hattınızda birden çok depo kullanıma alma.For more information, see Check out multiple repositories in your pipeline.

GörevTask

Görevler , bir işlem hattının yapı taşlarıdır.Tasks are the building blocks of a pipeline. Aralarından seçim yapabileceğiniz görevlerin bir kataloğu vardır.There's a catalog of tasks available to choose from.

steps:
- task: string  # reference to a task and version, e.g. "VSBuild@1"
  displayName: string  # friendly name displayed in the UI
  name: string  # identifier for this step (A-Z, a-z, 0-9, and underscore)
  condition: string
  continueOnError: boolean  # 'true' if future steps should run even if this step fails; defaults to 'false'
  enabled: boolean  # whether to run this step; defaults to 'true'
  target:
    container: string # where this step will run; values are the container name or the word 'host'
    commands: enum  # whether to process all logging commands from this step; values are `any` (default) or `restricted`
    settableVariables: string # what variables are allowed; defaults to all; can be `none` or a list of allowed vars
  timeoutInMinutes: number
  inputs: { string: string }  # task-specific inputs
  env: { string: string }  # list of environment variables to add

Bir komut modu belirtmezseniz, target yapıyı şu şekilde kısaltabilirsiniz:If you don't specify a command mode, you can shorten the target structure to:

- task:
  target: string  # container name or the word 'host'

Koşullar, zaman aşımlarıve adım hedeflerihakkında daha fazla bilgi edinin.Learn more about conditions, timeouts, and step targets.

Söz dizimi vurgulamaSyntax highlighting

Sözdizimi vurgulama, Visual Studio Code uzantısı aracılığıyla ardışık düzen şeması için kullanılabilir.Syntax highlighting is available for the pipeline schema via a Visual Studio Code extension. Visual Studio Code indirebilir, uzantıyı yükleyebilirve GitHub 'da projeyikullanıma alabilirsiniz.You can download Visual Studio Code, install the extension, and check out the project on GitHub. Uzantı, doğrulama için bir JSON şeması içerir.The extension includes a JSON schema for validation.

Ayrıca, Azure DevOps REST API yamlschema uçnoktasından kuruluşunuza özgü bir şema elde edebilirsiniz (yani, yüklenen özel görevleri içerir).You also can obtain a schema that's specific to your organization (that is, it contains installed custom tasks) from the Azure DevOps REST API yamlschema endpoint.