YAML şema başvurusu

Azure Pipelines

Bu makale, YAML işlem hatlarını Azure Pipelines ayrıntılı bir başvuru kılavuzu içerir. Desteklenen tüm YAML özelliklerini ve kullanılabilir seçenekleri içeren bir katalog içerir.

YAML işlem hatlarıyla çalışmaya başlamanın en iyi yolu hızlı başlangıç kılavuzunu okumaktır. Bundan sonra, YAML işlem hattınızı ihtiyaçlarınıza göre yapılandırmayı öğrenmek için Değişkenleri derleme ve İşler gibi kavramsal konularabakın.

YAML işlem hattınızı ihtiyaçlarınıza göre yapılandırmayı öğrenmek için Değişkenleri ve İşleri oluşturma gibi kavramsal konularabakın.

İşlem hattı yapısı

İşlem hattı, CI/CD işlemini tanımlayan bir veya daha fazla aşamadır. Aşamalar, bir işlem hattında önemli bölümlerdir. "Bu uygulamayı derleme", "Bu testleri çalıştır" ve "Ön üretime dağıt" aşamaları iyi örneklerdir.

Aşama, aynı makineye atanabilir iş birimleri olan bir veya daha fazla iştir. Hem aşamaları hem de işleri bağımlılık grafikleri halinde düzenleyebilirsiniz. Örnekler arasında "Bu aşamadan önce bu aşamayı çalıştır" ve "Bu iş, bu işin çıkışına bağlıdır."

İş, doğrusal bir adım serisidir. Adımlar görevler, betikler veya dış şablonlara başvurular olabilir.

Bu hiyerarşi bir YAML dosyasının yapısına şu şekilde yansıtıldı:

  • İşlem Hattı
    • Aşama A
      • İş 1
        • 1.1. Adım
        • 1.2. Adım
        • ...
      • İş 2
        • 2.1. Adım
        • 2.2. Adım
        • ...
    • B Aşaması
      • ...

Basit işlem hatları bu düzeylerin hepsini gerektirmez. Örneğin, tek işli bir derlemede yalnızca adımlar olduğundan aşamalar ve işler için kapsayıcıları atabilirsiniz. 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.

İşlem hattı, CI/CD işlemini tanımlayan bir veya daha fazla iştir. İş, aynı makineye atanabilir bir iş birimidir. İşleri "Bu iş, bu işin çıkışına bağlıdır" gibi bağımlılık grafları olarak ayarlayabilirsiniz.

İş, doğrusal bir adım serisidir. Adımlar görevler, betikler veya dış şablonlara başvurular olabilir.

Bu hiyerarşi bir YAML dosyasının yapısına şu şekilde yansıtıldı:

  • İşlem Hattı
    • İş 1
      • 1.1. Adım
      • 1.2. Adım
      • ...
    • İş 2
      • 2.1. Adım
      • 2.2. Adım
      • ...

Tek işli işlem hatları için yalnızca adımlar olduğundan işler kapsayıcısı atabilirsiniz. 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.

Kurallar

Bu makalede kullanılan söz dizimi kuralları şu şekildedir:

  • sol tarafta, : işlem hattı tanımlarında kullanılan değişmez anahtar sözcük yer alır.
  • sağ tarafından bir : veri türü kullanılır. Veri türü dize gibi ilkel bir tür veya bu makalenin başka bir yerinde tanımlanmış zengin bir yapı başvurusu olabilir.
  • Veri türü, [[] veri türünün bir dizisini gösterir. Örneğin, [ string ] bir dize dizisidir.
  • Veri türü veri {{::} türünün başka bir veri türüne eşlemesini gösterir. Örneğin, { string: string } dizeleri dizelerle eşlemektir.
  • simgesi, | anahtar sözcüğü için birden çok veri türü olduğunu gösterir. Örneğin, bir job | templateReference iş tanımına veya şablon başvurusuna izin ver anlamına gelir.

YAML temel bilgileri

Bu belge, yaml dosyasının Azure Pipelines kapsar. YAML ile ilgili temel bilgileri öğrenmek için bkz. Y Dakikalarında YAML öğrenme. Azure Pipelines tüm YAML özelliklerini desteklemez. Desteklenmeyen özellikler sabit noktaları, karmaşık anahtarları ve kümeleri içerir. Ayrıca, standart YAML'den Azure Pipelines, , veya bir eşlemenin ilk anahtarı gibi bir görev kısayolunu görmeye stagejobtaskscript bağlıdır.

İşlem Hattı

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şamaya sahip olursanızanahtar sözcüğünü atlar ve jobs anahtar sözcüğünü doğrudan belirtebilirsiniz:

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

Tek bir aşama ve tek bir iş varsa, ve anahtar sözcüklerini atlar ve doğrudan stagesjobs steps anahtar sözcüğünü stages

# ... 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ş varsa anahtar sözcüğünü atlar ve jobs doğrudan steps anahtar sözcüğünü jobs

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

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

Aşama

Aşama, ilgili işlerin koleksiyonudur. Aşamalar varsayılan olarak sıralı olarak kullanılır. Özelliği aracılığıyla aksi belirtilmedikçe her aşama yalnızca önceki aşama tamamlandıktan sonra dependsOn başlar.

Bir aşamanın ne zaman çalışması gerektiğini el ile kontrol etmek için onay denetimlerini kullanın. Bu denetimler genellikle üretim ortamlarının dağıtımlarını kontrol etmek için kullanılır.

Denetimler, kaynak sahibi tarafından kullanılabilen bir mekanizmadır. İşlem hattında bir aşamanın bir kaynağı ne zaman tükettiğine denetim sağlar. Ortam gibi bir kaynağın sahibi olarak, kaynağı tüketen bir aşamadan önce gerekli denetimleri tanımlayabilirsiniz.

Şu anda ortamlarda el ile onay denetimleri de desteklemektedir. Daha fazla bilgi için bkz. Onaylar.

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şulları ve değişkenlerihakkında dahafazla bilgi.

İş

İş, bir aracı veya sunucu üzerinde çalıştırılan adımkoleksiyonudur. İşler koşullu olarak çalışıyor olabilir ve önceki işlere bağlı olabilir.

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

hakkında daha fazla bilgi uses için uses 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.

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.

Değişkenler, adımlar, havuzlarve sunucu işlerihakkında daha fazla bilgi edinin.

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.

Kapsayıcı başvurusu

Bir kapsayıcı, işler tarafından desteklenir.

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

Stratejiler

matrixVe parallel anahtar sözcükleri bir işi çoğaltmak için karşılıklı dışlamalı stratejiler belirtir.

Matris

Bir matrisin kullanımı, her biri farklı girişe sahip olan bir işin kopyalarını oluşturur. Bu kopyalar, farklı yapılandırmalara veya platform sürümlerine karşı test için yararlıdır.

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

Matriste her Dize1 oluşumu için işin bir kopyası oluşturulur. Dize1 adı kopyanın adı ve işin adına eklenir. Her dize2oluşumu için, string3 değeri ile dize2 adlı bir değişken iş için kullanılabilir.

Not

Matris yapılandırma adları yalnızca temel Latin alfabesi harfleri (A-Z ve a-z), rakamlar (0-9) ve alt çizgi () içermelidir _ . Bunlar bir harfle başlamalıdır. Ayrıca, uzunluğunun 100 karakter veya daha az olması gerekir.

İsteğe bağlı maxParallel anahtar sözcük, aynı anda çalıştırılacak en fazla eşzamanlı matris, sayısını belirtir.

maxParallelBelirtilmemişse veya 0 olarak ayarlandıysa, hiçbir sınır uygulanmaz.

maxParallelBelirtilmemişse, hiçbir sınır uygulanmaz.

Not

matrixSöz dizimi otomatik iş ölçeklendirmeyi desteklemez, ancak anahtar sözcüğünü kullanarak benzer işlevleri de uygulayabilirsiniz each . Bir örnek için bkz. ifadeler.

Paralel

Bu strateji, bir işin kaç tane tekrardan çalışacağını belirtir. Büyük bir test matrisini Dilimleme için faydalıdır. Visual Studio test görevi , test yükünün zamanlanan iş sayısı genelinde nasıl bölüneceği hakkında anlamıştır.

strategy:
  parallel: number

Dağıtım işi

Dağıtım işi özel bir iş türüdür. Bu, ortamda sırayla çalıştırılacak adımlar koleksiyonudur. YAML işlem hatları içinde, dağıtım adımlarınızı bir dağıtım işine yerleştirmenizi öneririz.

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ımlar

Bir adım, bir işi oluşturan bir dizi işlemin doğrusal bir sırasıdır. 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. Bu davranış, adımlar arasında ortam değişkenlerinin korunmayacağı ancak dosya sistemi değişiklikleri olduğu anlamına gelir.

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

Adımlar hakkında daha fazla bilgi için bkz. şema başvuruları:

Tüm adımlar, bu makalede belgelenip belgelenmediğine bakılmaksızın aşağıdaki özellikleri destekler:

  • displayName
  • ada
  • koşul
  • continueOnError
  • etkinletir
  • env
  • Timeoutınminutes

Değişkenler

Sabit kodlanmış değerleri doğrudan ekleyebilir, değişken gruplarınabaşvurabilir veya değişken şablonları aracılığıyla ekleyebilirsiniz.

Ardışık düzen, aşama veya iş düzeyinde değişkenleri belirtin.

Sabit kodlanmış basit değişkenlerin bir kümesi için şu eşleme söz dizimini kullanın:

variables: { string: string }

Değişken gruplarını eklemek için bu dizi sözdizimine geçin:

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

name/value Çiftleri ve tekrarlayabilirsiniz group .

Ayrıca, güvenlik iyileştirmekiçin değişkenler salt okuma olarak ayarlanabilir.

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

Ayrıca şablonlardan değişkenleriekleyebilirsiniz.

Şablon başvuruları

Not

Tüm form olan tam şablon ifadesi söz diziminigördiğinizden emin olun .

Ardışık düzenin yeniden kullanılabilir bölümlerini ayrı bir dosyaya aktarabilirsiniz. Bu ayrı dosyalar şablonlar olarak bilinir.

Azure Pipelines dört tür şablonu destekler:

Ayrıca, bir işlem hattında nelerin izin verileceğini denetlemek ve parametrelerin nasıl kullanılabileceğini belirlemek için de şablonlar kullanabilirsiniz.

Ardışık düzenin yeniden kullanılabilir bölümlerini ayrı dosyalara dışarı aktarabilirsiniz. Bu ayrı dosyalar şablonlar olarak bilinir. Azure DevOps Server 2019, bu iki tür şablonu destekler:

Şablonlar, diğer şablonları içerebilir. Azure Pipelines tek bir işlem hattında en fazla 50 benzersiz şablon dosyasını destekler.

Aşama şablonları

Bir dosya içinde bir dizi aşama tanımlayabilir ve diğer dosyalarda birden çok kez kullanabilirsiniz.

Ana işlem hattında:

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

Dahil edilen şablonda:

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

İş şablonları

Bir dosyada bir iş kümesi tanımlayabilir ve bunu diğer dosyalarda birden çok kez kullanabilirsiniz.

Ana işlem hattında:

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

Dahil edilen şablonda:

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

İş şablonlarıyla çalışma hakkında daha fazla bilgi için bkz. şablonlar.

Adım şablonları

Bir dosyada bir dizi adım tanımlayabilir ve bunu başka bir dosyada birden çok kez kullanabilirsiniz.

Ana işlem hattında:

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

Dahil edilen şablonda:

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.

Değişken şablonları

Bir dosyada değişken kümesi tanımlayabilir ve bunu diğer dosyalarda birden çok kez kullanabilirsiniz.

Ana işlem hattında:

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

Dahil edilen şablonda:

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

Not

anahtar variables sözcüğü iki söz dizimi biçimi kullanır: dizi ve eşleme. Eşleme söz dizimlerinde, tüm anahtarlar değişken adlarıdır ve değerleri değişken değerleridir. Değişken şablonlarını kullanmak için sıra söz dizimi kullansanız iyi olur. Dizi söz dizimi, bir değişkenden ( ), değişken grubundan ( ) veya name şablondan ( group ) bahsetmeyi belirtmenizi template gerektirir. Daha fazla bilgi için değişkenler konu başlığına bakın.

Parametreler

Parametreleri şablonlarda ve işlem hatlarında kullanabilirsiniz.

Parametre tanımlarken tür ve ad alanları gereklidir. Tüm parametre veri türlerine bakın.

parameters:
- name: string          # name of the parameter; required
  type: enum            # see the enum data types in the following section
  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ürler

Değerin type aşağıdaki tabloda yer alan enum üyelerden biri olması gerekir.

Veri türü Notlar
string string
number ile values: kısıtlanabilir, aksi takdirde sayıya benzer herhangi bir dize kabul edilir
boolean true veya false
object herhangi bir YAML yapısı
step tek bir adım
stepList adım dizisi
job tek bir iş
jobList dizisi
deployment tek bir dağıtım işi
deploymentList dağıtım işleri dizisi
stage tek bir aşama
stageList aşama dizisi

Step, stepList, job, jobList, deployment, deploymentList, stage ve stageList veri türlerinin hepsi standart YAML şema biçimini kullanır. Bu örnek dize, sayı, boole, nesne, adım ve stepList'i içerir.

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 }}

Kaynaklar

Kaynak, işlem hattınız kapsamında tüketilen herhangi bir dış hizmettir. Kaynağa örnek olarak şunları üreten başka bir CI/CD işlem hattı örnektir:

  • Artifacts jenkins Azure Pipelines gibi.
  • GitHub, Azure Repos veya Git gibi kod depoları.
  • Azure Container Registry veya Docker hub gibi kapsayıcı görüntüsü kayıt defterleri.

YAML'de kaynaklar işlem hatları, kapsayıcılar, depolar ve türlerin kaynaklarını temsil ediyor. Kaynaklar hakkında daha fazla bilgi için buraya bakın.

Genel şema

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

İşlem hattı kaynağı

Yapıt üreten bir Azure işlem hattınız varsa, işlem hattınız bir işlem hattı kaynağı tanımlamak için pipeline anahtar sözcüğünü kullanarak yapıtları kullanabilir. İşlem hattı tamamlama tetikleyicilerini de etkinleştirsiniz.

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ız zaman, işlem hattı kaynağı geçerli işlem hattıyla aynı depodansa, tetikleyici aynı dalı izler ve olayın tetiklendiğinde işlemeye devam eder. Ancak işlem hattı kaynağı farklı bir depodansa, geçerli işlem hattı el ile ve zamanlanmış derlemeler için Varsayılan dal ayarı tarafından belirtilen dalda tetiklenir. Daha fazla bilgi için bkz. İşlem hattı tamamlama tetikleyicileri için dal konuları.

Önceden tanımlanmış değişkenler olarak işlem hattı kaynak meta verileri

Her çalıştırmada, bir işlem hattı kaynağının meta verileri önceden tanımlanmış şu değişkenler olarak tüm işler tarafından kullanılabilir:

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 işlem hattı kaynağından yapıtları download tüketebilirsiniz. Download anahtar sözcüğüne bakın.

Kapsayıcı kaynağı

Kapsayıcı işleri, araçlarınızı ve bağımlılıklarınızı bir kapsayıcının içinde yalıtmanıza izin sağlar. Aracı, belirttiğiniz kapsayıcının bir örneğini çalıştırır ve ardından içindeki adımları çalıştırır. anahtar container sözcüğü kapsayıcı görüntülerinizi belirtmenize olanak sağlar.

Hizmet kapsayıcıları, veritabanları gibi çeşitli bağımlılıklar sağlamak için bir işle birlikte çalışır.

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ğı

İşlem hattınız başka bir depoda şablonlara sahipse,sisteme bu depo hakkında bilgi verebilirsiniz. anahtar repository sözcüğü bir dış depo belirtmenize olanak sağlar.

İş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. anahtar repository sözcüğü bir dış depo belirtmenize olanak sağlar.

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ür

Pipelines türü için aşağıdaki değerleri destekler: git , github ve bitbucket . Türü git Git depoları Azure Repos ifade eder.

  • type: gitbelirtirsanız, değer aynı proje içinde başka bir name depoya başvurur. name: otherRepo bunun bir örneğidir. 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. name: OtherProject/otherRepo bunun bir örneğidir.

  • belirtirsanız, değer bir GitHub tam adıdır type: github ve kullanıcı veya kuruluşu name içerir. name: Microsoft/vscode bunun bir örneğidir. GitHub depolar yetkilendirme için GitHub bir hizmet bağlantısı gerektirir.

  • type: bitbucketbelirtirsanız, name değer Bitbucket Cloud repo'nun tam adıdır ve kullanıcı veya kuruluşu içerir. name: MyBitbucket/vscode bunun bir örneğidir. Bitbucket Cloud depoları yetkilendirme için bir Bitbucket Cloud hizmeti bağlantısı gerektirir.

Paket kaynağı

YaML işlem NuGet bir kaynak GitHub npm ve npm paketlerini kullanabilirsiniz. Paket kaynaklarını belirtirken paketi veya olarak NuGetnpm ayarlayın.

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

Tetikleyiciler

Not

Tetikleyici bloklarının değişkenleri veya şablon ifadelerini içermesi gerekir.

Anında tetikleyici

Anında tetikleyici, sürekli tümleştirme derlemenin çalışmasına neden olan dalları belirtir. Hiçbir anında tetikleyici belirtmezseniz, herhangi bir dal tetikleyicisi derlemeye iter. Tetikleyiciler ve bunları belirtme hakkında daha fazla bilgi.

Anahtar sözcük için üç ayrı söz dizimi seçeneği vardır: dahil etmek istediğiniz dalların listesi, CI tetikleyicilerini devre dışı bırakmanın bir yolu ve tam denetim için trigger tam söz dizimi.

Liste söz dizimi:

trigger: [ string ] # list of branch names

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

trigger: none # will disable CI builds entirely

Tam söz dizimi:

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

, veya için yan tümcesi olmayan bir yan tümce belirtirsiniz, yan excludeincludebranchestags tümcesinde paths* belirtmeye include eşdeğerdir.

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, bir işlem hattını yalnızca dahil etme tetikleyicisi için açıkça yapılandırmış olduğunuz dallar. Eklemeler önce işlenir ve ardından bu listeden dışlamalar kaldırılır. Dışlama belirtmenize ama dahil edilmememe durumlarını tetiklemezsiniz.

Çekme pr tetikleyicisi

Çekme isteği tetikleyicisi, çekme isteği derlemenin çalışmasına neden olan dalları belirtir. Çekme isteği tetikleyicisi belirtmezseniz, herhangi bir dala yapılan çekme istekleri bir derlemeyi tetikler. Çekme isteği tetikleyicileri ve bunları belirtme hakkında daha fazla bilgi.

Önemli

YAML PR tetikleyicileri yalnızca GitHub ve Bitbucket Cloud'da de desteklenir. Git'Azure Repos kullanırsanız, derleme işlem hattınızı doğrulama için tetiklemek üzere derleme doğrulaması için bir dal ilkesi yapılandırarak.

Önemli

YAML PR tetikleyicileri yalnızca GitHub. Git'Azure Repos kullanırsanız, derleme işlem hattınızı doğrulama için tetiklemek üzere derleme doğrulaması için bir dal ilkesi yapılandırarak.

Anahtar sözcük 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.

Liste söz dizimi:

pr: [ string ] # list of branch names

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

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

Tam söz dizimi:

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 excludeinclude belirtirsiniz, yan branchespaths tümcesinde * belirtmeye include eşdeğerdir.

Ö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. Eklemeler önce işlenir ve ardından bu listeden dışlamalar kaldırılır. Dışlama belirtmenize ama dahil edilmememe durumlarını tetiklemezsiniz.

Zamanlanmış tetikleyici

YAML zamanlanmış tetikleyicileri bu sürümde veya Azure DevOps Server Visual Studio Team Foundation Server. Zamanlanmış tetikleyicileri klasik düzenleyicide kullanabilirsiniz.

Zamanlanmış tetikleyici, dalların hangi zamanlamayı üzerinde yerleşik olduğunu belirtir. Zamanlanmış tetikleyici belirtmezseniz, zamanlanmış derleme oluşmaz. Zamanlanmış tetikleyiciler ve bunları belirtme hakkında daha fazla bilgi.

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

için yan tümcesi olmayan bir yan tümce excludeincludebranches belirtirsiniz, yan tümcesinde * belirtmeye include eşdeğerdir.

İşlem hattı tetikleyicisi

İşlem hattı tamamlama tetikleyicileri bir işlem hattı kaynağı kullanılarak yapılandırılır. Daha fazla bilgi için bkz. İşlem hattı tamamlama tetikleyicileri.

Havuz

anahtar pool sözcüğü, işlem pool bir işi için hangi havuzun kullanılamayacaklarını belirtir. poolBelirtim, işin çalıştırma stratejisiyle ilgili bilgileri de içerir.

Bu Azure DevOps Server 2019'da YAML'de iş düzeyinde ve işlem hattı ayarları kullanıcı arabiriminde işlem hattı düzeyinde bir havuz belirtebilirsiniz. 2019 Azure DevOps Server 2019.1'de, tek bir örtülü iş varsa YAML'de işlem hattı düzeyinde bir havuz da belirtebilirsiniz.

İşlem hattı, aşama veya iş düzeyinde havuz belirtebilirsiniz.

Hiyerarşinin en düşük düzeyinde belirtilen havuz, işi çalıştırmak için kullanılır.

Tam söz dizimi şu şekildedir:

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.

Özel havuz kullanıyorsanız ve talepleri belirtmenize gerek yoksa söz dizimlerini şu şekilde kısaltabilirsiniz:

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

Koşullar ve zaman aşımı hakkında daha fazla bilgi.

Talep

anahtar demands sözcüğü özel havuzlar tarafından de destekler. Bir özelliğin veya belirli bir dizenin varlığını kontrol edin.

pool:
  demands: [ string ]

Talepler hakkında daha fazla bilgi.

Ortam

environmentanahtar sözcüğü, işlem environment dağıtım işi tarafından hedeflenen ortamı veya kaynağını belirtir. Ortam, işin içinde tanımlanan adımları çalıştırmaya ilişkin dağıtım stratejisiyle ilgili bilgileri de içerir.

Tam söz dizimi şu şekildedir:

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:

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

Sunucu

değeri server bir sunucu işini server Yalnızca Bir Azure işlev uygulamasını faturalama gibi sunucu görevleri bir sunucu işi içinde çalıştırabilirsiniz.

'i server kullanırken, bir iş aracı işi yerine sunucu işi olarak çalışır.

pool: server

Komut Dosyası

anahtar script sözcüğü, komut satırı görevi script Görev, Windows ve Bash cmd.exe kullanarak bir betik çalıştırır.

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'
  timeoutInMinutes: number
  env: { string: string }  # list of environment variables to add
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:

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

Koşullar ve zaman aşımı hakkında daha fazla bilgi.

Tüm görevler için koşullar,zaman aşımı,adım hedeflerive görev denetimi seçenekleri hakkında daha fazla bilgi edinebilirsiniz.

Bash

anahtar bash sözcüğü, kabuk betik görevi bash Görev, Bash'te Windows, macOS ve Linux üzerinde bir betik çalıştırır.

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'
  timeoutInMinutes: number
  env: { string: string }  # list of environment variables to add
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

Komut modu belirtmezseniz yapıyı şu şekilde target kısaltabilirsiniz:

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

Koşullar ve zaman aşımı hakkında daha fazla bilgi.

Tüm görevler için koşullar,zaman aşımı,adım hedeflerive görev denetimi seçenekleri hakkında daha fazla bilgi edinebilirsiniz.

pwsh

bu pwsh görevin pwsh değeri true pwsh anahtar sözcüğü PowerShell görevinin kısayolu olur. Görev, Windows, macOS ve Linux'ta PowerShell Core betiği çalıştırır.

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 "Output stream action preferences" topic
  warningPreference: enum  # see the following "Output stream action preferences" topic
  informationPreference: enum  # see the following "Output stream action preferences" topic
  verbosePreference: enum  # see the following "Output stream action preferences" topic
  debugPreference: enum  # see the following "Output stream action preferences" 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 içinde çalıştır olduğu işin süresi boyunca devam eder. Önyüklenenlere bağlı görevler, bootstrap ile aynı işte yer alan görevlerdir.

Koşullar ve zaman aşımı hakkında daha fazla bilgi.

PowerShell

anahtar powershell sözcüğü, PowerShell görevi powershell Görev, görev içinde bir betik 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 "Output stream action preferences" topic
  warningPreference: enum  # see the following "Output stream action preferences" topic
  informationPreference: enum  # see the following "Output stream action preferences" topic
  verbosePreference: enum  # see the following "Output stream action preferences" topic
  debugPreference: enum  # see the following "Output stream action preferences" 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 içinde çalıştır olduğu işin süresi boyunca devam eder. Önyüklenenlere bağlı görevler, bootstrap ile aynı işte yer alan görevlerdir.

Koşullar ve zaman aşımı hakkında daha fazla bilgi.

Çıkış akışı eylem tercihleri

PowerShell, farklı ileti türlerini günlüğe göndermek için kullanılan birden çok çıkış akışı sağlar. Hata, Uyarı, Bilgi, Ayrıntılı ve Hata Ayıklama akışları, aracı işi gibi otomatik bir ortamda yararlı olan bilgileri iletir. PowerShell, her ileti yazıldığı zaman kullanıcıların her akışa bir eylem atamalarını sağlar. Örneğin, akışa Error eylem atanmışsa, cmdlet her çağrıldında Stop PowerShell Write-Error yürütmeyi durdurabilir.

PowerShell görevi, betiğiniz çalıştıryken bu çıkış akışlarının her biri için varsayılan PowerShell eylemini geçersiz kılmanıza olanak sağlar. Bu, betiğinizin en üstüne, akışın karşılık gelen tercih değişkenini seçim eylemine ayaran bir satır ile yapılır. Aşağıdaki tabloda, PowerShell görevi tarafından desteklenen eylemler ve akışa bir ileti yazıldığı zaman ne olduğu listedir:

Eylem Açıklama
Varsayılan PowerShell'in varsayılan eylemlerini kullanın.
Durdur İletiyi görev günlüklerine yazdırır, görevi sonlandırılır ve başarısız olarak işaretler.
Devam et İletiyi görev günlüklerine yazdırır.
SilentlyContinue İletiyi yoksayar.

Aşağıdaki tabloda, PowerShell görevi tarafından desteklenen çıkış akışları ve bunların varsayılan eylemleri liste almaktadır:

Akış Varsayılan eylem
Hata Durdur
Uyarı Varsayılan
Bilgi Varsayılan
Ayrıntılı Varsayılan
Hata Ayıklama Varsayılan

* PowerShell 3.0'da desteklenmiyor.

errorActionPreference: default | stop | continue | silentlyContinue
warningPreference: default | stop | continue | silentlyContinue
informationPreference: default | stop | continue | silentlyContinue
verbosePreference: default | stop | continue | silentlyContinue
debugPreference: default | stop | continue | silentlyContinue

Son çıkış kodunu yoksay

Betiğinden döndürülen son çıkış kodu varsayılan olarak denetlenir. Sıfır olmayan bir kod, bir adım hatası olduğunu gösterir ve bu durumda sistem betiğinizi şu şekilde ekler:

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

Bu davranışı istemiyorsanız ignoreLASTEXITCODE: true belirtin.

ignoreLASTEXITCODE: boolean

Koşullar ve zaman aşımı hakkında daha fazla bilgi.

Yayımlama

anahtar publish sözcüğü, İşlem Hattı Yapıtlarını publish 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).

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.

İndir

anahtar download sözcüğü, İşlem Hattı Yapıtı İndirme download 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.

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 konumu

Artifacts işlem hattından gelen dosyalar'a $(**Pipeline.Workspace**)/<artifact name> indirilir.

Artifacts işlem hattı kaynağından gelen kaynaklar'a $(**Pipeline.Workspace**)/\<pipeline resource identifier\>/<artifact name> indirilir.

Dağıtım işlerinde otomatik indirme

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. İndirmeleri önlemek için download: none belirtin.

Yapıtları indirme hakkında daha fazla bilgi edinin.

Kullanıma alma

Nondeployment işleri otomatik olarak kaynak kodunu kontrol eder. Bu davranışı checkout yapılandırmak veya gizlemek için anahtar sözcüğünü kullanın.

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

Kaynakları eşitlemeyi önlemek için:

steps:
- checkout: none

Not

Aracıyı Yerel Hizmet hesabında çalıştırıyorsanız ve git işlemlerini kullanarak veya git altmodüllerini yükerek geçerli depoyu değiştirmek istiyorsanız, Project Collection Build Service Accounts kullanıcısı için uygun izinleri verin.

- checkout: self
  submodules: true
  persistCredentials: true

İşlem hattınız içinde birden çok depoyu kontrol etmek için birden çok adım checkout kullanın:

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

Daha fazla bilgi için bkz. İşlem hattında birden çok depoyu denetleme.

Görev

Görevler, bir işlem hattının yapı taşlarıdır. Seçim yapmak için kullanılabilen görevler kataloğu vardır.

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'
  timeoutInMinutes: number
  inputs: { string: string }  # task-specific inputs
  env: { string: string }  # list of environment variables to add
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

Komut modu belirtmezseniz yapıyı şu şekilde target kısaltabilirsiniz:

- task:
  target: string  # container name or the word 'host'
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'
  retryCountOnTaskFailure: number # Max number of retries; default is zero
  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

Komut modu belirtmezseniz yapıyı şu şekilde target kısaltabilirsiniz:

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

Tüm görevler için koşullar,zaman aşımı vegörev denetimi seçenekleri hakkında daha fazla bilgi.

Tüm görevler için koşullar,zaman aşımı,adım hedeflerive görev denetimi seçenekleri hakkında daha fazla bilgi edinebilirsiniz.

Söz dizimi vurgulama

Söz dizimi vurgulama, işlem hattı şeması için bir Visual Studio Code kullanılabilir. 'i Visual Studio Code,uzantısını yükleyebilir veüzerinde projeyi GitHub. Uzantı, doğrulama için bir JSON şeması içerir.

Ayrıca, yamlschemauç noktası olan bir şemayı (yüklü özel görevler içerir) Azure DevOps REST API edinebilirsiniz.