YAML'de kaynakları tanımlama
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
YAML'deki kaynaklar, işlem hattı, derleme, depo, kapsayıcı, paket ve web kancası kaynaklarını temsil eder. Kaynaklar ayrıca sürüm, yapıtlar, ilişkili işlemeler ve iş öğeleri dahil olmak üzere işlem hattınızda kullanılan hizmetlerin tam izlenebilirliğini sağlar. Bir kaynak tanımladığınızda, işlem hattınızın herhangi bir yerinde kullanılabilir. Ayrıca kaynaklarınızdaki olayları tetikleme abonesi olarak DevOps iş akışınızı tamamen otomatikleştirebilirsiniz.
Daha fazla bilgi için bkz. Kaynaklar ve kaynaklar YAML şema tanımı hakkında.
Şema
resources:
pipelines: [ pipeline ]
builds: [ build ]
repositories: [ repository ]
containers: [ container ]
packages: [ package ]
webhooks: [ webhook ]
Değişkenler
Bir kaynak işlem hattını tetiklediğinde aşağıdaki değişkenler ayarlanır:
resources.triggeringAlias
resources.triggeringCategory
Bir kaynak işlem hattı çalıştırması tetiklemiyorsa bu değerler boş olur. Değişkenin Build.Reason
ayarlanması için bu değerlerin olması ResourceTrigger
gerekir.
Kaynak tanımlama pipelines
Yapıtlar üreten bir işlem hattınız varsa, bir pipelines
kaynak tanımlayarak yapıtları kullanabilirsiniz. pipelines
yalnızca Azure Pipelines için ayrılmış bir kaynaktır. Cd iş akışlarınız için işlem hattı kaynağında tetikleyiciler de ayarlayabilirsiniz.
Kaynak tanımınızda, pipeline
daha sonra işlem hattı kaynağına başvurmak için kullanabileceğiniz benzersiz bir değerdir. source
, yapıt oluşturan işlem hattının adıdır. İşlem hattı kaynak değişkenlerini kullanırken veya yapıtları indirirken işlem hattının diğer bölümlerinden işlem hattı kaynağına başvurmak için tarafından pipeline
tanımlanan etiketi kullanın.
İşlem hatlarını indirmenin alternatif bir yolu için İşlem Hattı Yapıtları'ndaki görevlere bakın.
resources: # types: pipelines | builds | repositories | containers | packages
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. If it is in a different pipelines folder, it needs to be the full path, e.g. MyTeam/MyPipeline
version: string # the pipeline run number (Build.BuildNumber) to pick the artifact, defaults to latest pipeline successful run 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 aren't 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 for 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
stages: [ string ] # list of stages to evaluate for trigger event, optional
Önemli
Bir kaynak tetikleyicisi tanımladığınızda, işlem hattı kaynağı geçerli işlem hattıyla aynı depodan (örneğin kendi başına) geliyorsa tetikleyici, olayın oluşturulduğu aynı dalı ve işlemeyi izler. Ancak işlem hattı kaynağı farklı bir depodan geliyorsa, geçerli işlem hattı kendi deposunun varsayılan dalında tetikler.
Yapıt sürümünün değerlendirilmesi
Kaynak işlem hattının yapıtlarının sürümü, işlem hattınızın nasıl tetiklenmiş olduğuna bağlıdır.
İşlem hattınız el ile tetiklediğiniz veya zamanlanmış bir çalıştırma nedeniyle çalışıyorsa, yapıtın sürümünün sürümü , branch
ve tags
özelliklerinin değerleriyle version
tanımlanır.
Belirtilen özellikler | Yapıt sürümü |
---|---|
version |
Belirtilen çalıştırma numarasına sahip derlemedeki yapıtlar |
branch |
Belirtilen dalda gerçekleştirilen en son derlemedeki yapıtlar |
tags Liste |
Belirtilen tüm etiketleri içeren en son derlemedeki yapıtlar |
branch ve tags liste |
Belirtilen dalda gerçekleştirilen ve tüm belirtilen etiketleri içeren en son derlemedeki yapıtlar |
Hiçbiri | Tüm dallardaki en son derlemedeki yapıtlar |
Bir örneğe göz atalım. İşlem hattınızın aşağıdaki kaynak tanımını içerdiğini varsayalım.
resources:
pipelines:
- pipeline: MyCIAlias
project: Fabrikam
source: Farbrikam-CI
branch: main ### This branch input cannot have wild cards. It is used for evaluating default version when pipeline is triggered manually or scheduled.
tags: ### These tags are used for resolving default version when the pipeline is triggered manually or scheduled
- Production ### Tags are AND'ed
- PreProduction
İşlem hattınızı el ile çalıştırılacak şekilde tetiklediğinizde, işlem hattının yapıtlarının MyCIAlias
sürümü dalda main
yapılan ve etiketleri PrepProduction
içeren Production
en son derlemelerden biridir.
İşlem hattınız kaynak işlem hatlarından biri tamamlandığında tetiklendiğinde, yapıtların sürümü tetiklenen işlem hattından biridir. , branch
ve tags
özelliklerinin değerleri version
yoksayılır.
Belirtilen tetikleyiciler | Sonuç |
---|---|
branches |
Kaynak işlem hattı dallardaki bir çalıştırmayı başarıyla tamamladığınızda geçerli işlem hattının yeni bir çalıştırması include tetikleniyor |
tags |
Kaynak işlem hattı belirtilen tüm etiketlerle etiketlenmiş bir çalıştırmayı başarıyla tamamladığınızda geçerli işlem hattının yeni bir çalıştırması tetikleniyor |
stages |
Kaynak işlem hattı belirtilen işlemi başarıyla yürüttüğünde geçerli işlem hattının yeni bir çalıştırması tetikleniyor stages |
branches , tags ve stages |
Kaynak işlem hattı çalıştırması tüm dal, etiketler ve aşama koşullarını karşılasa geçerli işlem hattının yeni bir çalıştırması tetikleniyor |
trigger: true |
Kaynak işlem hattı bir çalıştırmayı başarıyla tamamladığınızda geçerli işlem hattının yeni bir çalıştırması tetikleniyor |
Hiçbir şey | Kaynak işlem hattı bir çalıştırmayı başarıyla tamamladığında geçerli işlem hattının yeni bir çalıştırması tetiklenm |
Bir örneğe göz atalım. İşlem hattınızın aşağıdaki kaynak tanımını içerdiğini varsayalım.
resources:
pipelines:
- pipeline: SmartHotel
project: DevOpsProject
source: SmartHotel-CI
trigger:
branches:
include:
- releases/*
- main
exclude:
- topic/*
tags:
- Verified
- Signed
stages:
- Production
- PreProduction
İşlem hattınız dallardan birinde veya main
dalda çalıştırıldığındaSmartHotel-CI
, hem hem de Signed
Verified
ile etiketlendiğinde ve hem hem de aşamalarını PreProduction
Production
tamamladığında çalışır.releases
download
işlem hatları için
Geçerli işlem hattından ve tüm kaynaklardan tüm pipeline
yapıtlar otomatik olarak indirilir ve her deployment
işin başında kullanıma sunulur. Bu davranışı geçersiz kılabilirsiniz. Daha fazla bilgi için bkz . İşlem Hattı Yapıtları. Normal 'iş' yapıtları otomatik olarak indirilmiyor. Gerektiğinde açıkça kullanın download
.
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
Kaynaktan alınan pipeline
yapıtlar klasöre $(PIPELINE.WORKSPACE)/<pipeline-identifier>/<artifact-identifier>
indirilir.
İşlem hattı kaynak değişkenleri
Her çalıştırmada, bir işlem hattı kaynağının meta verileri önceden tanımlanmış değişkenler biçiminde tüm işler için kullanılabilir. <Alias>
, işlem hattı kaynağınız için vermiş olduğunuz tanımlayıcıdır. İşlem hattı kaynak değişkenleri yalnızca çalışma zamanında kullanılabilir.
Değişken söz dizimi hakkında daha fazla bilgi edinmek için bkz . Değişkenleri tanımlama.
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
Daha fazla bilgi için bkz . Önceden tanımlanmış değişkenler olarak işlem hattı kaynak meta verileri.
Kaynak tanımlama builds
Yapıtlar üreten bir dış CI derleme sisteminiz varsa, yapıtları bir builds
kaynakla kullanabilirsiniz. Kaynak builds
Jenkins, TeamCity, CircleCI gibi herhangi bir dış CI sistemi olabilir.
resources: # types: pipelines | builds | repositories | containers | packages
builds:
- build: string # identifier for the build resource
type: string # the type of your build service like Jenkins, circleCI etc.
connection: string # service connection for your build service.
source: string # source definition of the build
version: string # the build number to pick the artifact, defaults to Latest successful build
trigger: boolean # Triggers aren't enabled by default and should be explicitly set
builds
genişletilebilir bir kategoridir. Derleme hizmetinizdeki yapıtları kullanmak için bir uzantı yazabilir ve öğesinin bir parçası builds
olarak yeni bir hizmet türü tanıtabilirsiniz. Jenkins, içindeki builds
bir kaynak türüdür.
Önemli
Tetikleyiciler yalnızca Azure DevOps'un Jenkins sunucusuyla görüş açısına sahip olduğu barındırılan Jenkins için desteklenir.
downloadBuild
derlemeler için görev
Görevi kullanarak downloadBuild
kaynaktan build
yapıtları işlerinizin bir parçası olarak kullanabilirsiniz. Tanımlanan kaynak türüne build
bağlı olarak, bu görev çalışma zamanında hizmet için karşılık gelen indirme görevine otomatik olarak çözümür.
Kaynaktan alınan build
yapıtlar klasöre $(PIPELINE.WORKSPACE)/<build-identifier>/
indirilir.
Önemli
build
kaynak yapıtları işlerinize/deploy-jobs'larınıza otomatik olarak indirilmiyor. Yapıtları kullanmak için görevi açıkça eklemeniz downloadBuild
gerekir.
- downloadBuild: string # identifier for the resource from which to download artifacts
artifact: string # artifact to download; if left blank, downloads all artifacts associated with the resource provided
patterns: string | [ string ] # a minimatch path or list of [minimatch paths](tasks/file-matching-patterns.md) to download; if blank, the entire artifact is downloaded
Kaynak tanımlama repositories
İşlem hattınızın başka bir depoda şablonları varsa veya hizmet bağlantısı gerektiren bir depoyla çok depolu kullanıma alma kullanmak istiyorsanız, sisteme bu depo hakkında bilgi vermelisiniz.
anahtar repository
sözcüğü bir dış depo belirtmenize olanak tanır.
resources:
repositories:
- repository: string # Required as first property. Alias for the repository.
endpoint: string # ID of the service endpoint connecting to this repository.
trigger: none | trigger | [ string ] # CI trigger for this repository, no CI trigger if skipped (only works for Azure Repos).
name: string # repository name (format depends on 'type'; does not accept variables).
ref: string # ref name to checkout; defaults to 'refs/heads/main'. The branch checked out by default whenever the resource trigger fires.
type: string # Type of repository: git, github, githubenterprise, and bitbucket.
Tür
İşlem hatları, depo türü için aşağıdaki değerleri destekler: git
, github
, githubenterprise
ve bitbucket
.
Türü Azure git
Repos Git depolarına başvurur.
Belirtilen tür | Sonuç | Örnek |
---|---|---|
type: git |
Değer, name aynı projedeki başka bir depoya başvurur. |
name: otherRepo Aynı kuruluştaki başka bir projedeki bir depoya başvurmak için, adın önüne bu projenin adını ekleyin. name: OtherProject/otherRepo bunun bir örneğidir. |
type: github |
name Değer, GitHub deposunun tam adıdır ve kullanıcı veya kuruluşu içerir. |
name: Microsoft/vscode |
type: githubenterprise |
name değeri GitHub Enterprise deposunun tam adıdır ve kullanıcı veya kuruluşu içerir. |
name: Microsoft/vscode |
type: bitbucket |
name Değer, Bitbucket Cloud deposunun tam adıdır ve kullanıcı veya kuruluşu içerir. |
name: MyBitbucket/vscode |
GitHub Enterprise depoları yetkilendirme için GitHub Enterprise hizmet bağlantısı gerektirir.
Bitbucket Cloud depoları yetkilendirme için Bitbucket Cloud hizmet bağlantısı gerektirir.
Değişkenler
Her çalıştırmada, bir depo kaynağının meta verileri çalışma zamanı değişkenleri biçimindeki tüm işler için kullanılabilir. <Alias>
, depo kaynağınız için vermiş olduğunuz tanımlayıcıdır.
Değişkenler
Her çalıştırmada, bir depo kaynağının meta verileri çalışma zamanı değişkenleri biçimindeki tüm işler için kullanılabilir. <Alias>
, depo kaynağınız için vermiş olduğunuz tanımlayıcıdır.
Depo kullanmak için kullanın checkout
Kaynağın parçası repository
olarak tanımlanan depolarınızı kullanmak için anahtar sözcüğünü kullanıncheckout
.
Şema
steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
clean: string # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
fetchDepth: string # Depth of Git graph to fetch.
fetchTags: string # Set to 'true' to sync tags when fetching the repo, or 'false' to not sync tags. See remarks for the default behavior.
lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
path: string # Where to put the repository. The default is $(Build.SourcesDirectory).
condition: string # Evaluate this condition expression to determine whether to run this task.
continueOnError: boolean # Continue running even on failure?
displayName: string # Human-readable name for the task.
target: string | target # Environment in which to run this task.
enabled: boolean # Run this task when the job runs?
env: # Variables to map into the process's environment.
string: string # Name/value pairs
name: string # ID of the step.
timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
retryCountOnTaskFailure: string # Number of retries if the task fails.
Kaynaktaki repository
depolar, işlerinizde otomatik olarak eşitlenmez. depolarınızı işlerinizin bir parçası olarak getirmek için kullanın checkout
.
Daha fazla bilgi için bkz . İşlem hattınızdaki birden çok depoya göz atın.
Kaynak tanımlama containers
Sürekli tümleştirme/sürekli teslim (CI/CD) işlem hattınızın bir parçası olarak bir kapsayıcı görüntüsü kullanmanız gerekiyorsa bunu kullanarak containers
gerçekleştirebilirsiniz. Kapsayıcı kaynağı genel veya özel bir Docker Kayıt Defteri veya Azure Container Registry olabilir.
İşlem hattınızın bir parçası olarak Docker kayıt defterindeki görüntüleri kullanmanız gerekiyorsa, genel bir kapsayıcı kaynağı tanımlayabilirsiniz ( type
anahtar sözcük gerekmez).
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
genel kapsayıcı kaynağını işinizin bir parçası olarak kullanılan bir görüntü olarak kullanabilir veya Kapsayıcı işleri için de kullanılabilir. İşlem hattınız bir veya daha fazla hizmetin desteğini gerektiriyorsa, hizmet kapsayıcıları oluşturmak ve bu kapsayıcılara bağlanmak istersiniz. Hizmetler arasında veri paylaşmak için birimleri kullanabilirsiniz.
ACR görüntülerinizi kullanmak için Azure Container Registry (ACR) için birinci sınıf bir kapsayıcı kaynak türü kullanabilirsiniz. Bu kaynak türü, işlerinizin bir parçası olarak ve otomatik işlem hattı tetikleyicilerini etkinleştirmek için kullanılabilir. Otomatik işlem hattı tetikleyicilerini kullanmak için ACR için Katkıda Bulunan veya Sahip izinlerine sahip olmanız gerekir. Daha fazla bilgi için bkz . Azure Container Registry rolleri ve izinleri.
resources: # types: pipelines | repositories | containers | builds | packages
containers:
- container: string # identifier for the container resource
type: string # type of the registry like ACR, GCR etc.
azureSubscription: string # Azure subscription (ARM service connection) for container registry;
resourceGroup: string # resource group for your ACR
registry: string # registry for container images
repository: string # name of the container image repository in ACR
trigger: # Triggers aren't enabled by default and need to be set explicitly
enabled: boolean # set to 'true' to trigger on all image tags if 'tags' is unset.
tags:
include: [ string ] # image tags to consider the trigger events, optional; defaults to any new tag
exclude: [ string ] # image tags on discard the trigger events, optional; defaults to none
Not
Tüm görüntü etiketleri (enabled: 'true'
) için kapsayıcı tetikleyicilerini etkinleştirmek için kullanılan söz dizimi, diğer kaynak tetikleyicileri için kullanılan söz diziminden farklıdır. Belirli bir kaynak için doğru söz dizimini kullanmaya dikkat edin.
Not
İş yükü kimlik federasyonu kullanan hizmet bağlantıları içinde azureSubscription
desteklenmez.
Kapsayıcı kaynak değişkenleri
Bir kapsayıcıyı kaynak olarak tanımladıktan sonra kapsayıcı görüntüsü meta verileri değişken biçiminde işlem hattına geçirilir. Görüntü, kayıt defteri ve bağlantı ayrıntıları gibi bilgilere kapsayıcı dağıtma görevlerinizde kullanılacak tüm işlerde erişilebilir.
Kapsayıcı kaynak değişkenleri Docker ve Azure Container Registry ile çalışır. Yerel görüntü kapsayıcıları için kapsayıcı kaynak değişkenlerini kullanamazsınız.
resources.container.<Alias>.type
resources.container.<Alias>.registry
resources.container.<Alias>.repository
resources.container.<Alias>.tag
resources.container.<Alias>.digest
resources.container.<Alias>.URI
resources.container.<Alias>.location
Konum değişkeni yalnızca kapsayıcı kaynaklarının türü için ACR
geçerlidir.
Kaynak tanımlama packages
YAML işlem hatlarında kaynak olarak NuGet ve npm GitHub paketlerini kullanabilirsiniz.
Kaynakları belirtirken package
, paketi NuGet veya npm olarak ayarlayın. Yeni bir paket sürümü yayınlandığında otomatik işlem hattı tetikleyicilerini de etkinleştirebilirsiniz.
GitHub paketlerini kullanmak için kişisel erişim belirteci (PAT) tabanlı kimlik doğrulamasını kullanın ve PTS kullanan bir GitHub hizmet bağlantısı oluşturun.
Paketler varsayılan olarak işlere otomatik olarak indirilir. İndirmek için kullanın getPackage
.
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 package to consume; Optional; Defaults to latest
trigger: true # To enable automated triggers (true/false); Optional; Defaults to no triggers
Kaynak tanımlama webhooks
Not
Web kancaları Azure DevOps Server 2020.1'de yayımlandı.
Diğer kaynaklarla (işlem hatları, kapsayıcılar, derleme ve paketler gibi) yapıtları kullanabilir ve otomatik tetikleyicileri etkinleştirebilirsiniz. Ancak dağıtım işleminizi diğer dış olaylara veya hizmetlere göre otomatikleştiremezsiniz. Kaynak, webhooks
işlem hattınızı herhangi bir dış hizmetle tümleştirmenize ve iş akışını otomatikleştirmenize olanak tanır. Web kancaları (GitHub, GitHub Enterprise, Nexus, Artifactory vb.) aracılığıyla tüm dış olaylara abone olabilir ve işlem hatlarınızı tetikleyebilirsiniz.
Web kancası tetikleyicilerini yapılandırmak için aşağıdaki adımları uygulayın.
Dış hizmetinizde bir web kancası ayarlayın. Web kancanızı oluştururken aşağıdaki bilgileri sağlamanız gerekir:
İstek Url'si
https://dev.azure.com/<ADO Organization>/_apis/public/distributedtask/webhooks/<WebHook Name>?api-version=6.0-preview
Gizli Dizi - İsteğe bağlı. JSON yükünüzün güvenliğini sağlamanız gerekiyorsa Gizli dizi değerini belirtin.
Yeni bir "Gelen Web Kancası" hizmet bağlantısı oluşturun. Bu bağlantı, aşağıdaki önemli bilgileri tanımlamanıza olanak tanıyan, yeni kullanıma sunulmuş bir Hizmet Bağlantısı Türüdür:
- Web Kancası Adı: Web kancasının adı, dış hizmetinizde oluşturulan web kancasıyla eşleşmelidir.
- HTTP Üst Bilgisi - İstek doğrulaması için yükün HMAC-SHA1 karma değerini içeren istekteki HTTP üst bilgisinin adı. Örneğin GitHub için istek üst bilgisi "X-Hub-Signature" şeklindedir.
- Gizli dizi - Gizli dizi, gelen isteğin doğrulanması için kullanılan yükün HMAC-SHA1 karmasını doğrulamak için kullanılır (isteğe bağlı). Web kancanızı oluştururken gizli dizi kullandıysanız aynı gizli dizi anahtarını belirtmeniz gerekir.
ADLı
webhooks
yeni bir kaynak türü YAML işlem hatlarında kullanıma sunulmuştur. Bir web kancası olayına abone olmak için işlem hattınızda bir web kancası kaynağı tanımlayın ve bunu Gelen web kancası hizmet bağlantısına işaret edin. Ayrıca, her işlem hattının tetikleyicilerini özelleştirmek için web kancası kaynağında JSON yükü verilerini temel alan daha fazla filtre tanımlayabilirsiniz. Yük verilerini işlerinizdeki değişkenler biçiminde kullanın.Gelen Web Kancası hizmet bağlantısı bir web kancası olayı aldığında, web kancası olayına abone olan tüm işlem hatları için yeni bir çalıştırma tetiklenir. JSON yük verilerini, biçimini kullanarak işlerinizde kullanabilirsiniz
${{ parameters.<WebhookAlias>.<JSONPath>}}
resources:
webhooks:
- webhook: MyWebhookTriggerAlias ### Webhook alias
connection: IncomingWebhookConnection ### Incoming webhook service connection
filters: ### List of JSON parameters to filter; Parameters are AND'ed
- path: JSONParameterPath ### JSON path in the payload
value: JSONParameterExpectedValue ### Expected value in the path provided
Web kancaları işlem hatları, derlemeler, kapsayıcılar ve paketler gibi birinci sınıf kaynaklar tarafından desteklenmeyen dış web kancası olaylarını temel alarak iş akışınızı otomatikleştirir. Ayrıca, Azure DevOps'un işlem üzerinde görünürlüğü olmayan şirket içi hizmetler için hizmette web kancalarını yapılandırabilir ve işlem hatlarınızı otomatik olarak tetikleyebilirsiniz.
Çalıştırma oluşturma iletişim kutusunda kaynaklar için el ile sürüm seçici
Bir CD YAML işlem hattını el ile tetiklediğinizde, sağlanan girişlere göre işlem hattında tanımlanan kaynaklar için varsayılan sürümü otomatik olarak değerlendiririz. Ancak, bir çalıştırma oluştururken kaynak sürümü seçiciden farklı bir sürüm seçebilirsiniz.
Çalıştırma oluştur bölmesinde Kaynaklar'ı seçin. Bu işlem hattında kullanılan kaynakların listesini görürsünüz.
Bir kaynak seçin ve kullanılabilir sürümler listesinden belirli bir sürümü seçin. Kaynak sürümü seçici işlem hattı, derleme, depo, kapsayıcı ve paket kaynakları için desteklenir.
İşlem hattı kaynakları için tüm dallardaki tüm kullanılabilir çalıştırmaları görebilirsiniz. İşlem hattı numarasına veya dala göre bunları arayın. Başarılı, başarısız veya devam eden bir çalıştırma seçin. Bu esneklik, ihtiyacınız olan tüm yapıtları oluşturduğundan eminseniz CD işlem hattınızı çalıştırabilmenizi sağlar. CI çalıştırmasında ilgisiz bir aşama hatası nedeniyle CI çalıştırmasının tamamlanmasını veya yeniden çalıştırılmasını beklemeniz gerekmez. Ancak, yalnızca varsayılan sürümü zamanlanmış tetikleyiciler için değerlendirdiğimizde veya el ile sürüm seçici kullanmadığınızda CI çalıştırmalarını başarıyla tamamlayacağız.
GitHub paketleri gibi kullanılabilir sürümleri getirememenize neden olan kaynaklar için, çalıştırmanın seçileceği sürümü sağlayabilmeniz için sürüm seçicinin bir parçası olarak bir metin kutusu gösteririz.
YAML işlem hattını yetkilendirme
Kaynakların kullanılabilmesi için önce yetkilendirilmeleri gerekir. Kaynak sahibi, bu kaynağa erişebilen kullanıcıları ve işlem hatlarını denetler. İşlem hattının kaynağı kullanma yetkisine sahip olması gerekir. YAML işlem hattını yetkilendirmek için aşağıdaki yöntemlere bakın.
Kaynağın yönetim deneyimine gidin. Örneğin, değişken grupları ve güvenli dosyalar, İşlem Hatları altındaki Kitaplık sayfasında yönetilir. Aracı havuzları ve hizmet bağlantıları Project ayarlarında yönetilir. Burada tüm işlem hatlarını bu kaynağa erişme yetkisi vekleyebilirsiniz. Bu yetkilendirme, bir kaynağa erişimi kısıtlamanız gerekmiyorsa (örneğin, test kaynakları) kullanışlıdır.
İlk kez bir işlem hattı oluşturduğunuzda, yaml dosyasında başvuruda bulunılan tüm kaynaklar, bu kaynağın Kullanıcı rolünün bir üyesiyseniz işlem hattı tarafından kullanılmak üzere otomatik olarak yetkilendirilir. Bu nedenle, işlem hattı oluşturduğunuzda YAML dosyasında başvuruda bulunılan kaynaklar otomatik olarak yetkilendirilir.
YAML dosyasında değişiklik yapıp kaynak eklediğinizde, derleme aşağıdaki hataya benzer bir hatayla başarısız olur:
Could not find a <resource> with name <resource-name>. The <resource> does not exist or has not been authorized for use.
Bu durumda, başarısız derlemedeki kaynakları yetkilendirme seçeneği görürsünüz. Kaynak için Kullanıcı rolünün üyesiyseniz bu seçeneği belirleyebilirsiniz. Kaynaklar yetkilendirildikten sonra yeni bir derleme başlatabilirsiniz.
Projeniz için aracı havuzu güvenlik rollerinin doğru olduğunu doğrulayın.
Kaynaklar için onay denetimleri ayarlama
Bir kaynağın ne zaman çalıştığını onay denetimleri ve şablonlarla el ile denetleyebilirsiniz. Gerekli şablon onay denetimiyle, bir kaynak veya ortam kullanan herhangi bir işlem hattının da belirli bir YAML şablonundan genişletılmasını gerektirebilirsiniz. Gerekli şablon onayının ayarlanması güvenliği artırır. Kaynağınızın yalnızca bir şablonla belirli koşullar altında kullanıldığından emin olun. Şablonlar ve kaynaklarla işlem hattı güvenliğini geliştirme hakkında daha fazla bilgi edinin.
Izlenebilirlik
İşlem hattı veya dağıtım iş düzeyinde tüketilen tüm kaynaklar için tam izlenebilirlik sağlıyoruz.
İşlem hattı izlenebilirliği
Her işlem hattı çalıştırması için aşağıdaki bilgileri gösteririz.
bir kaynak tarafından tetiklenmişse işlem hattını tetikleyen kaynak.
Kaynağın ve kullanılan yapıtların sürümü.
Her kaynakla ilişkili işlemeler.
Her kaynakla ilişkili iş öğeleri.
Ortam izlenebilirliği
Bir işlem hattı bir ortama her dağıtıldığında, tüketilen kaynakların listesini görebilirsiniz. Aşağıdaki görünüm, dağıtım işlerinin bir parçası olarak tüketilen kaynakları ve bunların ilişkili işlemelerini ve iş öğelerini içerir.
CI işlem hatlarında ilişkili CD işlem hattı bilgilerini gösterme
Uçtan uca izlenebilirlik sağlamak için, hangi CD işlem hatlarının veren BIR CI işlem hattı tüketeceğini izleyebilirsiniz. KAYNAK aracılığıyla pipeline
ci işlem hattı çalıştırmasının kullanıldığı CD YAML işlem hattı çalıştırmalarının listesini görebilirsiniz. Diğer işlem hatları CI işlem hattınızı tüketiyorsa, çalıştırma görünümünde bir "İlişkili işlem hatları" sekmesi görürsünüz. Burada işlem hattınızı ve yapıtlarınızı kullanan tüm işlem hattı çalıştırmalarını bulabilirsiniz.
YAML kaynak tetikleyicisi sorunları desteği ve izlenebilirliği
İşlem hattı tetikleyicilerinin yürütülememesi kafa karıştırıcı olabilir. İşlem hattı tanımı sayfasına Tetikleyici Sorunları adlı yeni bir menü öğesi ekledik. Burada tetikleyicilerin neden yürütülemiyoruz öğrenebilirsiniz. Bu sayfaya erişmek için işlem hattı geçmişinizi açın. Tetikleyici Sorunları yalnızca depo dışı kaynaklar için kullanılabilir.
Kaynak tetikleyicileri aşağıdaki nedenlerle yürütülemez.
Sağlanan hizmet bağlantısının kaynağı geçersizse veya tetikleyicide söz dizimi hataları varsa, tetikleyici yapılandırılmaz ve hataya neden olur.
Tetikleyici koşulları eşleşmezse, tetikleyici yürütülemez. Koşulların neden eşleşmediğini anlamanız için bir uyarı görüntülenir.
Sonraki adımlar
SSS
Kısayol yerine download
neden işlem hatlarını resources
kullanmalıyım?
pipelines
Kaynak kullanmak, CI işlem hattındaki yapıtları kullanmanın ve otomatik tetikleyicileri yapılandırmanın bir yoludur. Kaynak, tüketilen sürümü, yapıtları, işlemeleri ve iş öğelerini görüntüleyerek işlem hakkında tam görünürlük sağlar. bir işlem hattı kaynağı tanımladığınızda, ilişkili yapıtlar dağıtım işlerinde otomatik olarak indirilir.
Yapıtları derleme işlerinde indirmeyi veya ile download
dağıtım işlerindeki indirme davranışını geçersiz kılmayı seçebilirsiniz. Daha fazla bilgi için bkz . steps.download.
İşlem Hattı Yapıtlarını İndir görevi yerine neden kullanmalıyım resources
?
İşlem Hattı Yapıtlarını İndir görevini doğrudan kullandığınızda izlenebilirliği ve tetikleyicileri kaçırabilirsiniz. Bazen İşlem Hattı Yapıtlarını İndir görevini doğrudan kullanmak mantıklıdır. Örneğin, farklı bir şablonda depolanan bir betik göreviniz olabilir ve betik görevinin bir derlemedeki yapıtların indirilmesi gerekir. Veya şablon kullanan birinin işlem hattı kaynağı eklemek isteyip istemediğini bilmiyor olabilirsiniz. Bağımlılıklardan kaçınmak için İşlem Hattı Yapıtlarını İndir görevini kullanarak tüm derleme bilgilerini bir göreve geçirebilirsiniz.
Docker Hub görüntüm güncelleştirildiğinde nasıl işlem hattı çalıştırması tetikleyebilirim?
Kapsayıcılar kaynak tetikleyicisi YAML işlem hatları için Docker Hub'da kullanılamadığından klasik bir yayın işlem hattı ayarlamanız gerekir.
Yeni bir Docker Hub hizmet bağlantısı oluşturun.
Klasik bir yayın işlem hattı oluşturun ve bir Docker Hub yapıtı ekleyin. Hizmet bağlantınızı ayarlayın. Ad alanını, depoyu, sürümü ve kaynak diğer adını seçin.
Tetikleyiciyi seçin ve sürekli dağıtım tetikleyicisini Etkinleştir olarak değiştirin. Seçili depoya her Docker gönderimi gerçekleştiğinde bir yayın oluşturacaksınız.
Yeni bir aşama ve iş oluşturun. Docker oturum açma ve Bash adlı iki görev ekleyin:
Docker görevi eyleme
login
sahiptir ve sizi Docker Hub'da günlüğe kaydeder.Bash görevi çalıştırır
docker pull <hub-user>/<repo-name>[:<tag>]
. ,repo-name
vetag
değerlerini değerlerinizle değiştirinhub-user
.
Web kancalarını nasıl doğrulayabilir ve sorunlarını giderebilirim?
Hizmet bağlantısı oluşturun.
Hizmet bağlantınıza başvurun ve bölümünde web kancanızı adlandırın
webhooks
.resources: webhooks: - webhook: MyWebhookTriggerAlias connection: MyServiceConnection
Ardışık düzeninizi çalıştırın. İşlem hattınızı çalıştırdığınızda web kancası Azure'da kuruluşunuz için dağıtılmış bir görev olarak oluşturulur.
POST
gövdesinde geçerli JSON ile birhttps://dev.azure.com/{organization}/_apis/public/distributedtask/webhooks/{webhook-name}?api-version={apiversion}
API çağrısı gerçekleştirin. 200 durum kodu yanıtı alırsanız web kancanız işlem hattınız tarafından kullanıma hazırdır. hatasınıCannot find webhook for the given webHookId ...
içeren bir 500 durum kodu yanıtı alırsanız kodunuz varsayılan dalınız olmayan bir dalda olabilir.- İşlem hattınızı açın.
- Düzenle'yi seçin.
- Diğer eylemler menüsünü seçin.
- Tetikleyiciler>YAML>Kaynak Al'ı seçin.
- Özellik dalınızı güncelleştirmek için el ile ve zamanlanmış derlemeler için Varsayılan dal'a gidin.
- Kaydet ve kuyruk'a tıklayın.
- Bu işlem hattı başarıyla çalıştırıldıktan sonra gövdesinde geçerli JSON ile bir API çağrısı gerçekleştirin
POST
https://dev.azure.com/{organization}/_apis/public/distributedtask/webhooks/{webhook-name}?api-version={apiversion}
. Şimdi 200 durum kodu yanıtı almanız gerekir.
İlgili makaleler
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin