İşlem hatlarını tetikleyen olayları belirtme

Azure DevOps Hizmetleri | Azure DevOps Server | Azure DevOps Server 2022

Bir işlem hattı tetikleyicisi, işlem hattının ne zaman çalışacağını belirtir. Bir tetikleyiciyi, bir zamanlamaya göre veya pull request oluşturulması gibi bir olay gerçekleştiğinde işlem hattını çalıştıracak şekilde yapılandırabilirsiniz. Azure Pipelines aşağıdaki tetikleyici türlerini destekler:

  • Sürekli tümleştirme tetikleyicileri (CI tetikleyicileri), bir dala kod gönderdiğinizde işlem hattı çalıştırır.
  • PR tetikleyicileri (PR triggers), bir PR oluşturduğunuzda veya açık bir PR'nin kaynak dalına kod gönderdiğinizde bir işlem hattını çalıştırır. GitHub depoları, açık bir çekme isteğine açıklama eklediğinizde işlem hattı çalıştıran açıklama tetikleyicilerini destekler.
  • Zamanlanmış tetikleyiciler önceden tanımlanmış bir zamanlamaya göre işlem hattı çalıştırır.
  • İşlem hattı tamamlama tetikleyicileri, başka bir işlem hattı tamamlandığında bir işlem hattı çalıştırır.

Bu makalede YAML işlem hattı tetikleyicilerine ve klasik derleme işlem hattı tetikleyicilerine genel bir bakış sağlanmaktadır. Klasik yayın işlem hatları , önceki listede açıklanan tetikleyicilerin benzer sürümlerine sahiptir. Daha fazla bilgi için bkz. Klasik yayın işlem hattı tetikleyicileri.

CI tetikleyicileri

CI tetikleyicileri, tetikleyicide tanımlanan ölçütleri karşılayan bir dala gönderme yapıldığında işlem hattını çalıştırır. CI tetikleyicisini yapılandırmak için anahtar sözcüğünü trigger kullanın. Örneğin, main dalına bir gönderme yapıldığında işlem hattını çalıştırmak için aşağıdaki tetikleyiciyi belirtin.

trigger:
- main

İşlem hattınızı açıkça yapılandırmazsanız, Zımni CI tetikleyicisini devre dışı bırak ayarı yapılmadığı veya UI ayarlarının YAML tetikleyicisini geçersiz kıldığı sürece tüm dallarda CI tetikleyicileri varsayılan olarak etkindir.

İşlem hattınızı açıkça yapılandırmazsanız, Zımni CI tetikleyicisini devre dışı bırak ayarı yapılmadığı veya UI ayarlarının YAML tetikleyicisini geçersiz kıldığı sürece tüm dallarda CI tetikleyicileri varsayılan olarak etkindir.

Not

Varsayılan CI tetikleyicisini devre dışı bırak yalnızca Azure DevOps Server 2022.2 ve sonraki sürümlerde kullanılabilir. Azure DevOps Server 2022 ve 2022.1'de CI tetikleyicileri açıkça yapılandırılmadıysa varsayılan olarak etkinleştirilir.

İşlem hattınızda CI tetikleyicilerini devre dışı bırakmak için aşağıdaki söz dizimini kullanın.

trigger: none

YAML işlem hatları aşağıdaki depo türleri için CI tetikleyicilerini destekler. Belirli bir depo türüyle CI tetikleyicilerini kullanma hakkında belirli bilgiler için aşağıdaki makalelere bakın.

CI tetikleyicileri için kullanılabilen tam YAML tetikleyici söz dizimi ve seçenekleri hakkında bilgi için bkz. tetikleyici tanımı.

Important

Git’teki yollar, CI ve PR tetikleyicilerindeki yol filtreleri de dahil olmak üzere büyük/küçük harfe duyarlıdır.

PR tetikleyicileri

Çekme isteği (PR) tetikleyicileri, çekme isteğini açtığınızda veya değişiklikleri çekme isteğinin kaynak dalına gönderdiğinizde işlem hattının çalışmasına neden olur. Bir PR tetikleyicisini yapılandırmak için pr anahtar sözcüğünü kullanın. Örneğin, main dalına yönelik bir PR oluşturulduğunda işlem hattını çalıştırmak için aşağıdaki tetikleyiciyi belirtin.

pr:
- main

İşlem hattınızda PR tetikleyicilerini açıkça yapılandırmazsanız, kullanıcı arabirimi ayarları YAML tetikleyicisini geçersiz kılmadığı sürece bunlar varsayılan olarak etkinleştirilir. Herhangi bir dala gönderilen pull request’ler, işlem hattını tetikler. Ardışık düzeninizde PR tetikleyicilerini devre dışı bırakmak için aşağıdaki söz dizimini kullanın.

pr: none

YAML PR tetikleyicileri GitHub ve Bitbucket Cloud için desteklenir. Bu tür depolarda PR tetikleyicilerini kullanma konusunda daha fazla bilgi için GitHub'da PR tetikleyicileri ve Bitbucket Cloud'da PR tetikleyicileri bölümüne bakın. YAML PR tetikleyici söz diziminin tamamı hakkında bilgi için PR tanımına bakın.

Azure Repos Git, PR tetikleyicilerini uygulamak için dal ilkelerini kullanır. Daha fazla bilgi için bkz. Azure Repos Git'te PR tetikleyicileri.

Yorum tetikleyicileri

Yorum tetikleyicileri, katkıda bulunanlar /azp run gibi bir çekme isteği komutu içeren bir çekme isteği yorumu yaptığında bir işlem hattını çalışacak şekilde yapılandırır. Açıklama tetikleyicileri yalnızca GitHub depolar için desteklenir. Daha fazla bilgi için bkz. GitHub depo açıklaması tetikleyicileri.

Zamanlanmış tetikleyiciler

Zamanlanmış tetikleyiciler önceden tanımlanmış bir zamanlamaya göre işlem hattı çalıştırır. YAML işlem hatlarını destekleyen tüm depo türleri YAML işlem hatlarında zamanlanmış tetikleyicileri destekler. Bu depo türleri Azure Repos Git, GitHub, GitHub Enterprise Server ve Bitbucket Cloud'dır.

YAML'de zamanlanmış tetikleyici tanımlamak için anahtar sözcüğünü schedules kullanın ve cron söz dizimini kullanarak zamanlamanızı tanımlayın. Aşağıdaki örnekte, her gün gece yarısı çalışan bir zamanlama yapılandırılır.

# YAML file in the main branch
schedules:
- cron: '0 0 * * *'
  displayName: Daily midnight build
  branches:
    include:
    - main

Daha fazla bilgi ve örnek için bkz . Zamanlanmış tetikleyiciler, zamanlamalar tanımı ve schedules.cron tanımı.

İşlem hattını tamamlama tetikleyicileri

YAML işlem hatlarındaki işlem hattı tetikleyicileri ve klasik derleme işlem hatlarındaki derleme tamamlama tetikleyicileri , başka bir işlem hattını tamamladığınızda bir işlem hattını tetiklemenizi sağlar.

Kaynak işlem hattı bir çalıştırmayı tamamladığında işlem hattı çalıştırması başlatmak için işlem hattınızda bir işlem hattı kaynak tetikleyicisi ayarlayın.

resources:
  pipelines:
  - pipeline: sourcePipelineResource # Label for this pipeline resource; used when referring to it elsewhere in the pipeline.
    source: source-pipeline # The name of the pipeline referenced by this pipeline resource.
    project: FabrikamProject # Required only if the source pipeline is in another project
    trigger: true # Run this pipeline when any run of source-pipeline completes

İşlem hattınıza birden çok işlem hattı kaynağı ekleyebilirsiniz. Tetikleyiciyi kaynak işlem hattının herhangi bir sürümü tamamlandığında çalışacak şekilde yapılandırabilir veya belirli dallarla sınırlayabilirsiniz.

Daha fazla bilgi ve örnek için bkz. İşlem hattı tamamlama tetikleyicileri.

Tam söz dizimi ve tetikleyici seçenekleri için bkz. resources.pipelines.pipeline definition.

YAML işlem hatlarındaki tetikleyiciler için dallarda dikkat edilmesi gerekenler

YAML işlem hatları, işlem hattının tetikleyicilerinin hangi sürümünün değerlendirildiği ve işlem hattının hangi sürümünün çalıştırılması gerektiğini etkileyebilecek farklı dallarda işlem hattının farklı sürümlerine sahip olabilir.

Tetikleyici türü İşlem hattı YAML sürümü
CI tetikleyicileri (trigger) Gönderilen daldaki işlem hattının sürümü kullanılır.
Çekme isteği tetikleyicileri (pr) Çekme isteği için kaynak dalda bulunan işlem hattının sürümü kullanılır.
GitHub çekme isteği yorum tetikleyicileri Çekme isteği için kaynak dalda bulunan işlem hattının sürümü kullanılır.
Zamanlanmış tetikleyiciler Bkz . Zamanlanmış tetikleyiciler için dal konuları.
İşlem hattını tamamlama tetikleyicileri Bkz İşlem hattı tamamlama tetikleyicileri için dal hususları.

YAML işlem hatları için kaynak tetikleyicileri

Depo kaynak tetikleyicileri, değişiklikler kaynak olarak repositories tanımlanan bir depoya geldiğinde işlem hattı başlatmanıza olanak sağlar. Dış Azure Repos Git, GitHub, GitHub Enterprise veya Bitbucket Cloud deposundaki işlemelerin veya ÇEKME'lerin geçerli işlem hattı çalıştırmalarını başlatabilmesi için kaynakta CI stili trigger filtreleri yapılandırın.

Azure Pipelines diğer kaynak türlerinde benzer olay temelli tetikleyicileri destekler:

  • pipelines: yukarı akış CI işlem hattının tamamlanması üzerine (isteğe bağlı dal, etiket ve aşama filtreleri ile)
  • builds: Jenkins gibi bir dış CI sisteminden alınan yeni yapıtlarda
  • containers: Azure Container Registry'daki yeni resim etiketleri üzerinde
  • packages: yeni NuGet veya npm GitHub paket sürümlerinde
  • webhooks: gelen web kancası hizmeti bağlantısı aracılığıyla GitHub, Nexus veya Artifactory gibi dış hizmetlerden gelen rastgele olaylarda

Daha fazla bilgi için bkz . YAML işlem hatlarındaki kaynaklar.

YAML işlem hatları için genel web kancası tabanlı tetikleyiciler

YAML işlem hatlarında Web kancası tetikleyici desteği, web kancaları aracılığıyla herhangi bir dış hizmetten (GitHub, GitHub Enterprise, Nexus veya Artifactory gibi) olaylara abone olmanıza ve işlem hatlarını otomatik olarak tetiklemenize olanak tanır. Bu özellik, otomatik tetikleyicileri işlem hatları, kapsayıcılar, derlemeler ve paketler gibi yerleşik kaynakların ötesine genişletir. İşlem hattı otomasyonlarını herhangi bir dış hizmetle tümleştirebilirsiniz.

Bu özelliği kullanmak için YAML işlem hattınızda altında resources.webhooks bir webhook kaynak tanımlayın ve bunu olaya abone olan gelen bir web kancası hizmeti bağlantısına işaret edin. Her işlem hattı çalıştırıldığında ince ayar yapmak için JSON yüküne filtre ekleyebilir ve yük değerlerine işlerinizde değişken olarak erişebilirsiniz.

resources:
  webhooks:
    - webhook: MyWebhookTrigger          ### Webhook alias
      connection: MyWebhookConnection    ### Incoming webhook service connection
      filters:
        - path: repositoryName      ### JSON path in the payload
          value: maven-releases     ### Expected value in the path provided
        - path: action
          value: CREATED
steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    ### JSON payload data is available in the form of ${{ parameters.<WebhookAlias>.<JSONPath>}}
    script: |
      Write-Host ${{ parameters.MyWebhookTrigger.repositoryName}}
      Write-Host ${{ parameters.MyWebhookTrigger.component.group}}

Daha fazla bilgi için bkz. YAML işlem hatları ve resources.webhooks.web kancası tanımı için genel web kancası tabanlı tetikleyiciler.

Klasik sürüm işlem hatları

Sürekli dağıtım tetikleyicileri, klasik derleme veya YAML işlem hattı tamamlandıktan sonra klasik sürümleri başlatmanıza yardımcı olur.

Zamanlanmış yayın tetikleyicileri , bir yayın işlem hattını bir zamanlamaya göre çalıştırmanıza olanak sağlar.

Çekme isteği yayın tetikleyicileri klasik sürümler kullanılarak çekme isteğini doğrudan dağıtmak için kullanılır.

Klasik sürümdeki aşama tetikleyicileri, klasik sürümdeki her aşamanın nasıl tetikleneceklerini yapılandırmak için kullanılır.