Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Bu makale, işlem hattınızı özelleştirmenin yaygın yolları hakkında adım adım bir kılavuzdur.
Önkoşullar
Çalışan bir işlem hattı oluşturmak için İlk işlem hattınızı oluşturma başlığındaki yönergeleri izleyin.
İpucu
Bu makalenin devamında AI kullanarak bu göreve yardımcı olabilirsiniz veya başlamak için Azure DevOps MCP Server ile yapay zeka yardımı sağlama konusuna bakın.
azure-pipelines.yml Dosyayı anlama
İşlem hattı, deponuzda bir YAML dosyası kullanılarak tanımlanır. Genellikle bu dosya adlandırılır azure-pipelines.yml ve deponuzun kökünde bulunur.
Azure Pipelines'da Pipelines sayfasına gidin, oluşturduğunuz işlem hattını seçin ve YAML düzenleyicisini açmak için işlem hattının bağlam menüsünden Edit öğesini seçin.
Not
Azure DevOps portalında işlem hatlarınızı görüntüleme ve yönetme yönergeleri için bkz. İşlem hatlarınızı görüntüleme ve yönetme.
YAML dosyasının içeriğini inceleyin.
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Maven@4
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.11'
jdkArchitectureOption: 'x64'
publishJUnitResults: false
testResultsFiles: '**/surefire-reports/TEST-*.xml'
goals: 'package'
Not
YAML dosyanızın içeriği, başlattığınız örnek depoya veya Azure Pipelines'de yapılan yükseltmelere bağlı olarak farklı olabilir.
Ekibiniz deponun ana dalı üzerinde bir değişiklik gönderdiğinizde veya çekme isteği oluşturduğunda işlem hattı çalışır. Microsoft tarafından barındırılan bir Linux makinesinde çalışır. İşlem hattının tek bir adımı vardır, bu da Maven görevini çalıştırmaktır.
Üzerine inşa edilecek platformu değiştir
Projenizi, çeşitli geliştirme dillerine yönelik SDK'ları ve araçları içeren Microsoft tarafından barındırılan aracılar üzerinde oluşturabilirsiniz. İsterseniz, kendi sunucularınızda barındırılan aracılarla ihtiyacınız olan belirli araçları da kullanabilirsiniz.
İşlem hattınızın düzenleyicisine gitmek için, derlemede İşlem hattını düzenle seçeneğini seçebilir veya işlem hattının ana sayfasından Düzenle seçeneğini belirleyebilirsiniz.
İşlem hattı şu anda bir Linux aracısı üzerinde çalışır:
pool: vmImage: "ubuntu-latest"Windows veya Mac gibi farklı bir platforma geçmek için
vmImagedeğerini değiştirin:pool: vmImage: "windows-latest"pool: vmImage: "macos-latest"Kaydet'i seçin ve işlem hattınızın farklı bir platformda çalıştığını görmek için değişiklikleri onaylayın.
Adımları ekle
İşlem hattınıza adım olarak daha fazla betik veya görev ekleyebilirsiniz. Görev, önceden paketlenmiş bir betiktir. Uygulamanızı derlemek, test etme, yayımlamak veya dağıtmak için görevleri kullanabilirsiniz. Java için, kullandığımız Maven görevi test ve yayımlama sonuçlarını işler, ancak kod kapsamı sonuçlarını yayımlamak için de bir görev kullanabilirsiniz.
İşlem hattınızın YAML düzenleyicisini açın.
YAML dosyanızın sonuna aşağıdaki kod parçacığını ekleyin.
- task: PublishCodeCoverageResults@2 inputs: summaryFileLocation: "$(System.DefaultWorkingDirectory)/**/site/jacoco/jacoco.xml" # Path to summary files failIfCoverageEmpty: true # Fail if code coverage results are missingKaydet'i seçin ve değişiklikleri onaylayın.
Derlemenizi seçip Test ve Kapsam sekmelerine giderek test ve kod kapsamı sonuçlarınızı görüntüleyebilirsiniz.
Birden çok platformda geliştirin
Projenizi birden çok platformda derleyebilir ve test edebilirsiniz. Bunu yapmanın bir yolu strategy ve matrix kullanmaktır. Değişkenleri kullanarak verileri kolayca işlem hattının çeşitli bölümlerine yerleştirebilirsiniz. Bu örnekte, kullanmak istediğimiz görüntünün adını geçirmek için bir değişken kullanacağız.
Dosyanızda
azure-pipelines.ymlşu içeriği değiştirin:pool: vmImage: "ubuntu-latest"aşağıdaki içerikle:
strategy: matrix: linux: imageName: "ubuntu-latest" mac: imageName: "macOS-latest" windows: imageName: "windows-latest" maxParallel: 3 pool: vmImage: $(imageName)Kaydet'i seçin ve ardından derlemenizin üç farklı platformda üçe kadar iş çalıştırmasını görmek için değişiklikleri onaylayın.
Her bir aracı aynı anda yalnızca bir iş çalıştırabilir. Birden çok işi paralel çalıştırmak için birden çok aracı yapılandırmanız gerekir. Ayrıca yeterli paralel iş gerekir.
Birden fazla sürüm kullanarak derleme yapın
Bu dilin farklı sürümlerini kullanarak bir proje oluşturmak için bir matrix sürüm ve değişken kullanabilirsiniz. Bu adımda, Java projesini tek bir platformda iki farklı Java sürümüyle oluşturabilir veya farklı platformlarda farklı Java sürümleri çalıştırabilirsiniz.
Not
Bir bağlamda birden çok kez kullanamazsınız strategy .
tr-TR: Tek bir platformda ve birden çok sürümü desteklemek için
azure-pipelines.yml'den sonra ve Maven görevinden öncevmImagedosyanıza aşağıdaki matrisi ekleyin.strategy: matrix: jdk10: jdkVersion: "1.10" jdk11: jdkVersion: "1.11" maxParallel: 2Ardından maven görevinizde şu satırı değiştirin:
jdkVersionOption: "1.11"bu satırla değiştirin:
jdkVersionOption: $(jdkVersion)Değişkeni seçtiğiniz platforma geri döndürdiğinizden
$(imageName)emin olun.Birden çok platform ve sürümde derlemek istiyorsanız, yayımlama görevinden önce dosyanızdaki
azure-pipelines.ymliçeriğin tamamını aşağıdaki kod parçacığıyla değiştirin:trigger: - main strategy: matrix: jdk10_linux: imageName: "ubuntu-latest" jdkVersion: "1.10" jdk11_windows: imageName: "windows-latest" jdkVersion: "1.11" maxParallel: 2 pool: vmImage: $(imageName) steps: - task: Maven@4 inputs: mavenPomFile: "pom.xml" mavenOptions: "-Xmx3072m" javaHomeOption: "JDKVersion" jdkVersionOption: $(jdkVersion) jdkArchitectureOption: "x64" publishJUnitResults: true testResultsFiles: "**/TEST-*.xml" goals: "package"Kaydet'i seçin ve ardından derlemenizin iki farklı platformda ve SDK'da iki iş çalıştırmasını görmek için değişiklikleri onaylayın.
CI tetikleyicilerini özelleştirme
İşlem hattı tetikleyicileri bir işlem hattının çalışmasına neden olur. Bir dala güncelleme gönderdiğinizde işlem hattının çalışmasını sağlamak için trigger: kullanabilirsiniz. YAML işlem hatları varsayılan dalınızdaki (genellikle main) bir CI tetikleyicisi ile varsayılan olarak yapılandırılır. Belirli dallar veya çekme isteği (pull request) doğrulaması için tetikleyiciler ayarlayabilirsiniz. Çekme isteği doğrulama tetikleyicisi için, aşağıdaki iki örnekte gösterildiği gibi trigger: adımını pr: ile değiştirin. Varsayılan olarak, işlem hattı her çekme isteği değişikliği için çalışır.
Tetikleyicileri ayarlamak isterseniz, dosyanızın
azure-pipelines.ymlbaşına aşağıdaki kod parçacıklarından birini ekleyin.trigger: - main - releases/*pr: - main - releases/*Dalın tam adını (örneğin,
main) veya önek eşleştirme joker karakterini (örneğin,releases/*) belirtebilirsiniz.
Pipeline ayarları
İşlem hattı ayrıntıları sayfasındaki Diğer eylemler
menüsünden işlem hattı ayarlarını görüntüleyebilir ve yapılandırabilirsiniz.
- Güvenliği Yönet - Güvenliği Yönet
-
Yeniden adlandırma/taşıma - İşlem hattı adınızı ve klasör konumunuzu düzenleyin.
- Durum rozeti - Deponuza durum rozeti ekleme
- Delete - Tüm yapılar ve ilgili öğeler dahil olmak üzere işlem hattını siler.
- Zamanlanmış çalıştırmalar - Zamanlanmış çalıştırmalar görünümü
Aşağıdaki işlem hattı ayarlarını yapılandırmak için Ayarlar'ı seçin.
İşlem hattı ayarları bölmesinden aşağıdaki ayarları yapılandırabilirsiniz.
Yeni çalıştırma isteklerini işleme - Bazen işlem hattınızda yeni çalıştırmaların başlatılmasını engellemek istersiniz.
- Varsayılan olarak, yeni çalıştırma isteklerinin işlenmesi Etkin'dir. Bu ayar, el ile çalıştırmalar da dahil olmak üzere tüm tetikleyici türlerinin standart olarak işlenmesine olanak tanır.
- Duraklatılan işlem hatları, çalıştırma isteklerinin işlenmesine izin verir, ancak bu istekler başlamadan önce kuyruğa alınır. Yeni istek işleme etkinleştirildiğinde, işleme kuyruktaki ilk istekle başlayan işleme devam edilir.
- Devre dışı bırakılan işlem hatları, kullanıcıların yeni çalıştırmalar başlatmasını engeller. Bu ayar uygulanırken tüm tetikleyiciler de devre dışı bırakılır. Devre dışı bırakılmış bir boru hattı kullanan tüm derleme politikaları, PR genel bakış penceresinde derleme politikasının yanında "Derleme sıraya alınamıyor" iletisini gösterir ve derleme politikasının durumu 'bozuk' olarak gösterilir.
YAML dosya yolu - İşlem hattınızı farklı bir YAML dosyası kullanmaya yönlendirmeniz gerekirse, bu dosyanın yolunu belirtebilirsiniz. YAML dosyanızı taşımanız/yeniden adlandırmanız gerekiyorsa bu ayar da yararlı olabilir.
Bu çalıştırmaya dahil edilen iş öğelerini otomatik olarak bağla - Belirli bir işlem hattı çalıştırmasıyla ilişkili değişikliklerle ilişkili iş öğeleri olabilir. Bu iş öğelerini çalıştırma işlemine bağlamak için bu seçeneği belirleyin. Çalıştırmada yer alan iş öğelerini otomatik olarak bağlama seçeneği seçildiğinde, ya spesifik bir dalı ya da varsayılan olan tüm dalları belirtmeniz gerekir. Bir dal belirtirseniz, iş öğeleri yalnızca bu dalın çalışmalarıyla ilişkilendirilir. Eğer
*belirtirseniz, tüm çalıştırmalar için iş öğeleri ilişkilendirilir.
- Çalıştırmalarınız başarısız olduğunda bildirim almak için Bir ekip için bildirimleri yönetme bölümüne bakın.
Güvenliği yönetme
Proje düzeyinde işlem hattı güvenliğini, işlem hatları ana sayfasındaki Diğer eylemler seçeneğinden ve işlem hattı düzeyinde işlem hattı ayrıntıları sayfasından yapılandırabilirsiniz.
İşlem hattı işlemlerinizin güvenliğini desteklemek için yerleşik bir güvenlik grubuna kullanıcı ekleyebilir, bir kullanıcı veya grup için tek tek izinler ayarlayabilir veya önceden tanımlanmış rollere kullanıcı ekleyebilirsiniz. Web portalında Azure Pipelines güvenliğini kullanıcı veya yönetici bağlamından yönetebilirsiniz. İşlem hattı güvenliğini yapılandırma hakkında daha fazla bilgi için bkz . İşlem hattı izinleri ve güvenlik rolleri.
Hata durumunda iş öğesi oluşturma
YAML işlem hatlarında klasik derleme işlem hatları gibi hatada iş öğesi oluşturma ayarı yoktur. Klasik derleme işlem hatları tek aşamalıdır ve Hatada İş Öğesi Oluştur tüm işlem hattı için geçerlidir. YAML işlem hatları çok aşamalı olabilir ve işlem hattı düzeyi ayarı uygun olmayabilir. Aksaklık durumunda iş öğesi oluşturmayı YAML işlem hattında uygulamak için, Work Items - Create REST API çağrısını veya Azure DevOps CLI az boards work-item create komutunu işlem hattınızda istediğiniz noktada kullanabilirsiniz.
Aşağıdaki örnekte iki iş vardır. İlk iş işlem hattının çalışmasını temsil eder, ancak başarısız olursa, ikinci iş çalışır ve işlem hattıyla aynı projede bir hata oluşturur.
# When manually running the pipeline, you can select whether it
# succeeds or fails.
parameters:
- name: succeed
displayName: Succeed or fail
type: boolean
default: false
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- job: Work
steps:
- script: echo Hello, world!
displayName: 'Run a one-line script'
# This malformed command causes the job to fail
# Only run this command if the succeed variable is set to false
- script: git clone malformed input
condition: eq(${{ parameters.succeed }}, false)
# This job creates a work item, and only runs if the previous job failed
- job: ErrorHandler
dependsOn: Work
condition: failed()
steps:
- bash: |
az boards work-item create \
--title "Build $(build.buildNumber) failed" \
--type bug \
--org $(System.TeamFoundationCollectionUri) \
--project $(System.TeamProject)
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'Create work item on failure'
Not
Azure Boards, Çevik veya Temel gibi çeşitli işlemleri kullanarak iş öğesi izlemenizi yapılandırmanıza olanak tanır. Her işlemin farklı iş öğesi türleri vardır ve her iş öğesi türü her işlemde kullanılamaz. Her işlem tarafından desteklenen iş öğesi türlerinin listesi için bkz . İş öğesi türleri (WIT).
Önceki örnek, işlem hattının başarılı mı yoksa başarısız mı olduğunu yapılandırmak için Çalışma Zamanı parametrelerini kullanır. İşlem hattını el ile çalıştırırken parametresinin succeed değerini ayarlayabilirsiniz. İş hattının ilk işindeki ikinci script adım, succeed parametresini değerlendirir ve yalnızca succeed false olarak ayarlandığında çalışır.
İşlem hattındaki ikinci işin ilk işe bağımlılığı vardır ve yalnızca ilk iş başarısız olursa çalışır. İkinci iş, hata oluşturmak için Azure DevOps CLI az boards work-item create komutunu kullanır. Azure DevOps CLI komutlarını bir işlem hattından çalıştırma hakkında daha fazla bilgi için bkz. YAML işlem hattında komutları çalıştırma.
YAML işlem hatlarında klasik derleme işlem hatları gibi hatada iş öğesi oluşturma ayarı yoktur. Klasik derleme işlem hatları tek aşamalıdır ve Hatada İş Öğesi Oluştur tüm işlem hattı için geçerlidir. YAML işlem hatları çok aşamalı olabilir ve işlem hattı düzeyi ayarı uygun olmayabilir. YAML işlem hattında hata durumunda iş öğesi oluştur'u uygulamak için, işlem hattınızda istediğiniz noktada İş Öğeleri - REST API oluşturma çağrısını kullanabilirsiniz.
Aşağıdaki örnekte iki iş vardır. İlk iş işlem hattının çalışmasını temsil eder, ancak başarısız olursa, ikinci iş çalışır ve işlem hattıyla aynı projede bir hata oluşturur.
# When manually running the pipeline, you can select whether it
# succeeds or fails.
parameters:
- name: succeed
displayName: Succeed or fail
type: boolean
default: false
trigger:
- main
pool:
vmImage: ubuntu-latest
jobs:
- job: Work
steps:
- script: echo Hello, world!
displayName: 'Run a one-line script'
# This malformed command causes the job to fail
# Only run this command if the succeed variable is set to false
- script: git clone malformed input
condition: eq(${{ parameters.succeed }}, false)
# This job creates a work item, and only runs if the previous job failed
- job: ErrorHandler
dependsOn: Work
condition: failed()
steps:
- bash: |
curl \
-X POST \
-H 'Authorization: Basic $(System.AccessToken)' \
-H 'Content-Type: application/json-patch+json' \
-d '[
{
"op": "add",
"path": "/fields/System.Title",
"from": null,
"value": "git clone failed"
}
]' \
"$(System.CollectionUri)$(System.TeamProject)/_apis//wit/workitems/$Bug?api-version=7.1-preview.3
"
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
displayName: 'Create work item on failure'
Not
Azure Boards, Çevik veya Temel gibi çeşitli işlemleri kullanarak iş öğesi izlemenizi yapılandırmanıza olanak tanır. Her işlemin farklı iş öğesi türleri vardır ve her iş öğesi türü her işlemde kullanılamaz. Her işlem tarafından desteklenen iş öğesi türlerinin listesi için bkz . İş öğesi türleri (WIT).
Önceki örnek, işlem hattının başarılı mı yoksa başarısız mı olduğunu yapılandırmak için Çalışma Zamanı parametrelerini kullanır. İşlem hattını el ile çalıştırırken parametresinin succeed değerini ayarlayabilirsiniz. İş hattının ilk işindeki ikinci script adım, succeed parametresini değerlendirir ve yalnızca succeed false olarak ayarlandığında çalışır.
İşlem hattındaki ikinci işin ilk işe bağımlılığı vardır ve yalnızca ilk iş başarısız olursa çalışır. İkinci iş, hata oluşturmak için Azure DevOps API'sinin az boards work-item create komutunu kullanır.
Bu örnekte iki iş kullanılır, ancak aynı yaklaşım birden çok aşamada kullanılabilir.
Not
YAML çok aşamalı işlem hatlarını destekleyen Yayın Hatası Oluştuğunda Hata Yarat gibi bir market uzantısı da kullanabilirsiniz.
İşlem hattınızı özelleştirmek için yapay zeka kullanma
Azure DevOps MCP Server yapılandırıyorsanız, doğal dil kullanarak işlem hattınızı iyileştirmeye ve özelleştirmeye yönelik akıllı öneriler alabilirsiniz.
| Görev | Örnek talimat |
|---|---|
| Derleme sürelerini iyileştirme | How can I speed up the build for pipeline "CI-Main" in project <Contoso>? |
| Çok platformlu derlemeler ekleyin | Add a build matrix for Linux, Windows, and macOS to this pipeline in <Contoso> |
| CI tetikleyicilerini yapılandırma | What branch triggers should I set up for this pipeline in <Contoso>? |
| Test kapsamı ekleme | Add a code coverage step to this Java pipeline in <Contoso> |
| Çekme isteği doğrulamasını ayarlayın | Configure pull request validation triggers for the main branch in <Contoso> |
| Paralel işler ekleme | How do I run build and test jobs in parallel for this pipeline in <Contoso>? |
| Değişken grupları kullanma | Which variable groups in <Contoso> could this pipeline reuse? |
| Dağıtım aşamaları ekleme | Add a staging deployment stage to this pipeline in <Contoso> |
| İşlem hattı güvenliğini gözden geçirme | Are there any security best practices missing from this pipeline in <Contoso>? |
| Yapılandırmaları karşılaştırma | Compare the build settings of pipeline "CI-Main" and "CI-Feature" in <Contoso> |
İpucu
Visual Studio Code kullanıyorsanız aracı modu özellikle işlem hattı özelleştirmelerinde yineleme ve yapılandırma değişikliklerini test etme konusunda yararlıdır.
Sonraki adımlar
İşlem hattınızı özelleştirmenin temellerini öğrendiniz. Ardından, kullandığınız dil için işlem hattını özelleştirme hakkında daha fazla bilgi edinmenizi öneririz:
CI işlem hattınızı bir CI/CD işlem hattına dönüştürmek için, uygulamanızı bir ortama dağıtmak üzere adımlar içeren bir dağıtım işi ekleyin.
Bu kılavuzdaki konular hakkında daha fazla bilgi edinmek için bkz. İşler, Görevler, Görev Kataloğu, Değişkenler, Tetikleyiciler veya Sorun Giderme.
YAML işlem hatlarında başka neler yapabileceğinizi öğrenmek için bkz . YAML şema başvurusu.