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
- ...
- İş 1
- B Aşaması
- ...
- Aşama A
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
- ...
- İş 1
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, birjob | templateReferenceiş 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:
- Pipelines iş içeren iş
- İşlemhatlarında kapsayıcılar ve depolar
- Tetikleyiciler
- Değişkenler
- Derleme numarası biçimleri
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.
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.
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.
İş ş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 |
iş 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 birnamedepoya başvurur.name: otherRepobunun 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/otherRepobunun bir örneğidir.belirtirsanız, değer bir GitHub tam adıdır
type: githubve kullanıcı veya kuruluşunameiçerir.name: Microsoft/vscodebunun bir örneğidir. GitHub depolar yetkilendirme için GitHub bir hizmet bağlantısı gerektirir.type: bitbucketbelirtirsanız,namedeğer Bitbucket Cloud repo'nun tam adıdır ve kullanıcı veya kuruluşu içerir.name: MyBitbucket/vscodebunun 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.
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.
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.
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.