Bitbucket Bulut depoları oluşturma

Azure DevOps Services

Azure Pipelines, her çekme isteğini otomatik olarak derleyip doğrulayabilir ve Bitbucket Cloud deponuza işleyebilir. Bu makalede Bitbucket Cloud ile Azure Pipelines arasındaki tümleştirmenin nasıl yapılandırıldığı açıklanır.

Bitbucket ve Azure Pipelines, birlikte iyi bir şekilde tümleşen iki bağımsız hizmettir. Bitbucket Cloud kullanıcılarınız Azure Pipelines'a otomatik olarak erişmiyor. Bunları Azure Pipelines'a açıkça eklemeniz gerekir.

Bitbucket depolarına erişim

Önce bir Bitbucket Cloud deposu ve ardından bu depoda bir YAML dosyası seçerek yeni bir işlem hattı oluşturursunuz. YAML dosyasının bulunduğu depoya depo adı self verilir. Varsayılan olarak bu, işlem hattınızın oluşturduğu depodur.

İşlem hattınızı daha sonra farklı bir depoya veya birden çok depoya göz atacak şekilde yapılandırabilirsiniz. Bunun nasıl yapılacağını öğrenmek için bkz . çoklu depo kullanıma alma.

Derlemeler sırasında kodu getirmek için Azure Pipelines'a depolarınıza erişim verilmelidir. Buna ek olarak, işlem hattını ayarlayan kullanıcının Bitbucket'e yönetici erişimi olmalıdır, çünkü bu kimlik Bitbucket'e bir web kancası kaydetmek için kullanılır.

İşlem hattı oluştururken Bitbucket Cloud depolarınıza Azure Pipelines erişimi vermek için 2 kimlik doğrulama türü vardır.

Authentication type İşlem hatları kullanılarak çalıştırılır
1. OAuth Kişisel Bitbucket kimliğiniz
2. Kullanıcı adı ve parola Kişisel Bitbucket kimliğiniz

OAuth kimlik doğrulaması

OAuth, Bitbucket hesabınızdaki depolar için kullanmaya başlamak için en basit kimlik doğrulama türüdür. Bitbucket durum güncelleştirmeleri kişisel Bitbucket kimliğiniz adına gerçekleştirilir. İşlem hatlarının çalışmaya devam etmesi için depo erişiminizin etkin kalması gerekir.

OAuth kullanmak için işlem hattı oluşturma sırasında istendiğinde Bitbucket'de oturum açın. Ardından, OAuth ile yetkilendirmek için Yetki ver'e tıklayın. OAuth bağlantısı daha sonra kullanmak üzere Azure DevOps projenize kaydedilir ve oluşturulan işlem hattında kullanılır.

Dekont

Azure DevOps Services kullanıcı arabiriminin yükleyebileceği en fazla Bitbucket deposu sayısı 2.000'dir.

Parolayla kimlik doğrulaması

Derlemeler ve Bitbucket durum güncelleştirmeleri kişisel kimliğiniz adına gerçekleştirilir. Derlemelerin çalışmaya devam etmesi için depo erişiminizin etkin kalması gerekir.

Parola bağlantısı oluşturmak için Azure DevOps proje ayarlarınızda Hizmet bağlantıları'nı ziyaret edin. Yeni bir Bitbucket hizmet bağlantısı oluşturun ve Bitbucket Cloud deponuza bağlanmak için kullanıcı adı ve parola sağlayın.

CI tetikleyicileri

Sürekli tümleştirme (CI) tetikleyicileri, belirtilen dallara güncelleştirme gönderdiğinizde veya belirtilen etiketleri her gönderdiğinizde işlem hattının çalışmasına neden olur.

Azure DevOps sprint 227'de tanıtılan Örtük YAML CI tetikleyicisini devre dışı bırak ayarı etkinleştirilmediği sürece YAML işlem hatları varsayılan olarak tüm dallarda ci tetikleyicisi ile yapılandırılır. Zımni YAML CI tetikleyicisini devre dışı bırak ayarı kuruluş düzeyinde veya proje düzeyinde yapılandırılabilir. Örtük YAML CI tetikleyicisini devre dışı bırak ayarı etkinleştirildiğinde, YAML işlem hattının bir trigger bölümü yoksa YAML işlem hatları için CI tetikleyicileri etkinleştirilmez. Varsayılan olarak, Örtük YAML CI tetikleyicisini devre dışı bırak etkin değildir.

Dallar

Basit bir söz dizimi ile hangi dalların CI tetikleyicileri alabileceğini denetleyebilirsiniz:

trigger:
- main
- releases/*

Dalın tam adını (örneğin, main) veya joker karakteri (örneğin, releases/*) belirtebilirsiniz. Joker karakter söz dizimi hakkında bilgi için bkz. Joker karakterler.

Dekont

Değişkenler çalışma zamanında değerlendirildiğinden (tetikleyici tetikledikten sonra) tetikleyicilerde değişkenleri kullanamazsınız.

Dekont

YAML dosyalarını yazmak için şablonlar kullanıyorsanız, tetikleyicileri yalnızca işlem hattı için ana YAML dosyasında belirtebilirsiniz. Şablon dosyalarında tetikleyici belirtemezsiniz.

veya batchkullanan exclude daha karmaşık tetikleyiciler için, aşağıdaki örnekte gösterildiği gibi tam söz dizimini kullanmanız gerekir.

# specific branch build
trigger:
  branches:
    include:
    - main
    - releases/*
    exclude:
    - releases/old*

Yukarıdaki örnekte, herhangi bir yayın dalında veya dalında bir değişiklik gönderildiğinde main işlem hattı tetiklenir. Ancak, ile oldbaşlayan bir yayınlar dalında değişiklik yapıldığında tetiklenmez.

Yan tümcesi olmayan bir excludeinclude yan tümce belirtirseniz, yan tümcesinde belirtmeye include* eşdeğerdir.

Listelerde dal adlarını belirtmeye branches ek olarak, aşağıdaki biçimi kullanarak tetikleyicileri etiketlere göre de yapılandırabilirsiniz:

trigger:
  branches:
    include:
      - refs/tags/{tagname}
    exclude:
      - refs/tags/{othertagname}

Herhangi bir tetikleyici belirtmediyseniz ve Zımni YAML CI tetikleyicisini devre dışı bırak ayarı etkinleştirilmediyse, varsayılan değer şöyle yazarsınız:

trigger:
  branches:
    include:
    - '*'  # must quote since "*" is a YAML reserved character; we want a string

Önemli

Bir tetikleyici belirttiğinizde, varsayılan örtük tetikleyicinin yerini alır ve yalnızca açıkça dahil edilecek şekilde yapılandırılmış dallara gönderildiğinde işlem hattı tetiklenir. Eklemeler önce işlenir ve ardından dışlamalar bu listeden kaldırılır.

CI çalıştırmalarını toplu olarak oluşturma

Değişiklikleri sık sık karşıya yükleyen çok sayıda ekip üyeniz varsa, başlattığınız çalıştırma sayısını azaltmak isteyebilirsiniz. bir işlem hattı çalışırken olarak ayarlarsanız batchtrue, sistem çalıştırma tamamlanana kadar bekler, ardından henüz oluşturulmamış tüm değişikliklerle başka bir çalıştırma başlatır.

# specific branch build with batching
trigger:
  batch: true
  branches:
    include:
    - main

Dekont

batch depo kaynak tetikleyicilerinde desteklenmez.

Bu örneği netleştirmek için yukarıdaki işlem hattının çalışmasına bir göndermenin Amain neden olduğunu düşünelim. İşlem hattı çalışırken depoya ek gönderimler B yapılır ve C gerçekleşir. Bu güncelleştirmeler yeni bağımsız çalıştırmaları hemen başlatmaz. Ancak ilk çalıştırma tamamlandıktan sonra, bu noktaya kadar tüm gönderimler birlikte toplu olarak yapılır ve yeni bir çalıştırma başlatılır.

Dekont

İşlem hattının birden çok işi ve aşaması varsa, ikinci çalıştırma başlamadan önce ilk çalıştırmanın tüm işlerini ve aşamalarını tamamlayarak veya atlayarak terminal durumuna ulaşması gerekir. Bu nedenle, bu özelliği birden çok aşamaya veya onaya sahip bir işlem hattında kullanırken dikkatli olmanız gerekir. Bu gibi durumlarda derlemelerinizi toplu olarak işlemek isterseniz, CI/CD işleminizi biri derleme (toplu işlem ile) ve diğeri dağıtımlar için olmak üzere iki işlem hattına bölmeniz önerilir.

Yollar

Dahil etmek veya dışlamak için dosya yollarını belirtebilirsiniz.

# specific path build
trigger:
  branches:
    include:
    - main
    - releases/*
  paths:
    include:
    - docs
    exclude:
    - docs/README.md

Yolları belirtirken, Azure DevOps Server 2019.1 veya daha düşük bir sürümünü kullanıyorsanız tetiklenecek dalları açıkça belirtmeniz gerekir. İşlem hattını yalnızca yol filtresiyle tetikleyemezsiniz; Ayrıca bir dal filtresine sahip olmanız ve yol filtresiyle eşleşen değiştirilen dosyaların dal filtresiyle eşleşen bir daldan olması gerekir. Azure DevOps Server 2020 veya daha yeni bir sürümü kullanıyorsanız, yol filtresiyle birlikte tüm dallara filtre uygulamak için atlayabilirsiniz branches .

Yol filtreleri için joker karakterler desteklenir. Örneğin, ile eşleşen src/app/**/myapp*tüm yolları ekleyebilirsiniz. Joker karakterlerini (**, *veya ?) yol filtrelerini belirtirken) kullanabilirsiniz.

  • Yollar her zaman deponun köküne göre belirtilir.
  • Yol filtreleri ayarlamazsanız, deponun kök klasörü varsayılan olarak örtük olarak eklenir.
  • Bir yolu dışlarsanız, daha derin bir klasöre nitelemediğiniz sürece bu yolu da ekleyemezsiniz. Örneğin ,araçları dışlarsanız /tools/trigger-runs-on-these ekleyebilirsiniz
  • Yol filtrelerinin sırası önemli değildir.
  • Git'teki yollar büyük/küçük harfe duyarlıdır. Gerçek klasörlerle aynı durumu kullandığınızdan emin olun.
  • Değişkenler çalışma zamanında değerlendirildiğinden (tetikleyici tetikledikten sonra) yollarda değişkenleri kullanamazsınız.

Dekont

Bitbucket Cloud depolarında, etiket tetikleyicilerini belirtmenin tek yolu söz dizimini kullanmaktır branches . Söz tags: dizimi Bitbucket için desteklenmez.

CI'yi geri çevirme

CI tetikleyicisini devre dışı bırakma

belirterek trigger: noneCI tetikleyicilerini tamamen devre dışı bırakabilirsiniz.

# A pipeline with no CI trigger
trigger: none

Önemli

Bir dala bir değişiklik gönderdiğinizde, bir CI çalıştırmasının başlatılıp başlatılmaması gerektiğini belirlemek için bu daldaki YAML dosyası değerlendirilir.

Tek tek işlemeler için CI atlanıyor

Ayrıca Azure Pipelines'a bir işlem hattını çalıştırmayı atlayıp göndermenin normalde tetikleyebileceğini de belirtebilirsiniz. Bir gönderimin parçası olan işlemelerin iletisine veya açıklamasına dahil [skip ci] edin; Azure Pipelines bu gönderim için CI çalıştırmayı atlar. Aşağıdaki çeşitlemelerden herhangi birini de kullanabilirsiniz.

  • [skip ci] veya [ci skip]
  • skip-checks: true veya skip-checks:true
  • [skip azurepipelines] veya [azurepipelines skip]
  • [skip azpipelines] veya [azpipelines skip]
  • [skip azp] veya [azp skip]
  • ***NO_CI***

Koşullarda tetikleyici türünü kullanma

Çalıştırmayı başlatan tetikleyici türüne bağlı olarak işlem hattınızda farklı adımları, işleri veya aşamaları çalıştırmak yaygın bir senaryodur. Bunu sistem değişkenini Build.Reasonkullanarak yapabilirsiniz. Örneğin, çekme isteği doğrulamalarının dışında tutmak için adımınıza, işinize veya aşamanıza aşağıdaki koşulu ekleyin.

condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))

Yeni dallar oluşturulduğunda tetikleyicilerin davranışı

Aynı depo için birden çok işlem hattı yapılandırmak yaygın bir durumdur. Örneğin, uygulamanızın belgelerini oluşturmak için bir işlem hattınız ve kaynak kodu oluşturmak için başka bir işlem hattınız olabilir. CI tetikleyicilerini bu işlem hatlarının her birinde uygun dal filtreleri ve yol filtreleri ile yapılandırabilirsiniz. Örneğin, klasöre bir güncelleştirme gönderdiğinizde bir işlem hattının docs tetiklenmesi ve uygulama kodunuz için bir güncelleştirme gönderdiğinizde tetiklenmesi için başka bir işlem hattı isteyebilirsiniz. Bu gibi durumlarda, yeni bir dal oluşturulduğunda işlem hatlarının nasıl tetiklendiğinden anlamanız gerekir.

Deponuza yeni bir dal (dal filtreleri ile eşleşen) gönderdiğinizde davranış şöyledir:

  • İşlem hattınızda yol filtreleri varsa, yalnızca yeni dalda bu yol filtresiyle eşleşen dosyalarda değişiklikler olduğunda tetiklenir.
  • İşlem hattınızda yol filtreleri yoksa, yeni dalda değişiklik olmasa bile tetiklenir.

Joker karakterler

Dal, etiket veya yol belirtirken tam bir ad veya joker karakter kullanabilirsiniz. Joker karakter desenleri sıfır veya daha fazla karakter eşleştirmeye ve ? tek bir karakterle eşleşmeye olanak sağlar*.

  • Deseninizi bir YAML işlem hattında ile * başlatırsanız, deseni gibi "*-releases"tırnak içine sarmalamanız gerekir.
  • Dallar ve etiketler için:
    • Joker karakter desenin herhangi bir yerinde görünebilir.
  • Yollar için:
    • Azure DevOps Services dahil olmak üzere Azure DevOps Server 2022 ve üzeri sürümlerde yol deseni içinde herhangi bir yerde joker karakter görüntülenebilir ve veya ?kullanabilirsiniz*.
    • Azure DevOps Server 2020 ve daha düşük sürümlerde son karakter olarak ekleyebilirsiniz * , ancak dizin adını tek başına belirtmekten farklı bir şey yapmaz. Yol filtresinin ortasına eklemeyebilir* ve kullanamazsınız?.
trigger:
  branches:
    include:
    - main
    - releases/*
    - feature/*
    exclude:
    - releases/old*
    - feature/*-working
  paths:
    include:
    - docs/*.md

Çekme isteği tetikleyicileri

Çekme isteği (PR) tetikleyicileri, belirtilen hedef dallardan biriyle bir çekme isteği açıldığında veya böyle bir çekme isteğinde güncelleştirme yapıldığında işlem hattının çalışmasına neden olur.

Dallar

Çekme isteklerinizi doğrularken hedef dalları belirtebilirsiniz. Örneğin, ve releases/*hedeflerini master hedefleyen çekme isteklerini doğrulamak için aşağıdaki pr tetikleyiciyi kullanabilirsiniz.

pr:
- main
- releases/*

Bu yapılandırma, ilk kez yeni bir çekme isteği oluşturulduğunda ve çekme isteğinde yapılan her güncelleştirmeden sonra yeni bir çalıştırma başlatır.

Dalın tam adını (örneğin, master) veya joker karakteri (örneğin, releases/*) belirtebilirsiniz.

Dekont

Değişkenler çalışma zamanında değerlendirildiğinden (tetikleyici tetikledikten sonra) tetikleyicilerde değişkenleri kullanamazsınız.

Dekont

YAML dosyalarını yazmak için şablonlar kullanıyorsanız, tetikleyicileri yalnızca işlem hattı için ana YAML dosyasında belirtebilirsiniz. Şablon dosyalarında tetikleyici belirtemezsiniz.

Her yeni çalıştırma, çekme isteğinin kaynak dalından en son işlemeyi oluşturur. Bu, Azure Pipelines'ın birleştirme işlemesini derlediği diğer depolarda (örneğin Azure Repos veya GitHub) çekme isteklerini derlemesinden farklıdır. Ne yazık ki Bitbucket, çekme isteğinin kaynak ve hedef dalları arasındaki birleştirilmiş kodu içeren birleştirme işlemesi hakkındaki bilgileri kullanıma sunmaz.

YAML dosyanızda hiçbir pr tetikleyici görünmüyorsa, aşağıdaki pr tetikleyiciyi yazmış gibi çekme isteği doğrulamaları tüm dallar için otomatik olarak etkinleştirilir. Bu yapılandırma, herhangi bir çekme isteği oluşturulduğunda ve işlemeler herhangi bir etkin çekme isteğinin kaynak dallarına geldiğinde derlemeyi tetikler.

pr:
  branches:
    include:
    - '*'  # must quote since "*" is a YAML reserved character; we want a string

Önemli

Bir pr tetikleyici belirttiğinizde, varsayılan örtük pr tetikleyicinin yerini alır ve yalnızca açıkça dahil edilecek şekilde yapılandırılmış dallara gönderildiğinde işlem hattı tetiklenir.

Belirli dalları dışlamanız gereken daha karmaşık tetikleyiciler için, aşağıdaki örnekte gösterildiği gibi tam söz dizimini kullanmanız gerekir.

# specific branch
pr:
  branches:
    include:
    - main
    - releases/*
    exclude:
    - releases/old*

Yollar

Dahil etmek veya dışlamak için dosya yollarını belirtebilirsiniz. Örneğin:

# specific path
pr:
  branches:
    include:
    - main
    - releases/*
  paths:
    include:
    - docs
    exclude:
    - docs/README.md

İpuçları:

  • Yol filtreleriyle joker karakterler desteklenmez.
  • Yollar her zaman deponun köküne göre belirtilir.
  • Yol filtreleri ayarlamazsanız, deponun kök klasörü varsayılan olarak örtük olarak eklenir.
  • Bir yolu dışlarsanız, daha derin bir klasöre nitelemediğiniz sürece bu yolu da ekleyemezsiniz. Örneğin ,araçları dışlarsanız /tools/trigger-runs-on-these ekleyebilirsiniz
  • Yol filtrelerinin sırası önemli değildir.
  • Git'teki yollar büyük/küçük harfe duyarlıdır. Gerçek klasörlerle aynı durumu kullandığınızdan emin olun.
  • Değişkenler çalışma zamanında değerlendirildiğinden (tetikleyici tetikledikten sonra) yollarda değişkenleri kullanamazsınız.

Birden çok ÇEKME isteği güncelleştirmesi

Çekme isteğine yönelik ek güncelleştirmelerin aynı çekme isteği için devam eden doğrulama çalıştırmalarını iptal edip etmeyeceğini belirtebilirsiniz. Varsayılan değer: true.

# auto cancel false
pr:
  autoCancel: false
  branches:
    include:
    - main

Çekme isteği doğrulamasını geri çevirme

belirterek pr: noneçekme isteği doğrulamasını tamamen geri çevirebilirsiniz.

# no PR triggers
pr: none

Daha fazla bilgi için bkz. YAML şemasında PR tetikleyicisi.

Dekont

Tetikleyiciniz pr tetiklenmiyorsa, kullanıcı arabiriminde YAML PR tetikleyicilerini geçersiz kılmadığınızdan emin olun.

Bilgilendirme çalıştırmaları

Bilgilendirme amaçlı çalıştırma, Azure DevOps'un bir YAML işlem hattının kaynak kodunu alamadığını bildirir. Kaynak kodu alma işlemi, gönderilen işleme gibi dış olaylara yanıt olarak gerçekleşir. Kod değişiklikleri olup olmadığını denetlemek ve zamanlanmış çalıştırma başlatıp başlatmamak gibi iç tetikleyicilere yanıt olarak da gerçekleşir. Kaynak kodu alma işlemi, git deposu sağlayıcısı tarafından sık sık azaltma isteğinde bulunulması nedeniyle birden çok nedenden dolayı başarısız olabilir. Bilgi amaçlı çalıştırmanın varlığı, Azure DevOps'un işlem hattını çalıştıracağını göstermez.

Bilgilendirme çalıştırması aşağıdaki ekran görüntüsünde olduğu gibi görünür.

Screenshot of an informational pipeline run.

Aşağıdaki özniteliklerle bir bilgilendirme çalıştırmasını tanıyabilirsiniz:

  • Durum şudur: Canceled
  • Süre: < 1s
  • Çalıştırma adı aşağıdaki metinlerden birini içerir:
    • Could not retrieve file content for {file_path} from repository {repo_name} hosted on {host} using commit {commit_sha}.
    • Could not retrieve content for object {commit_sha} from repository {repo_name} hosted on {host}.
    • Could not retrieve the tree object {tree_sha} from the repository {repo_name} hosted on {host}.
    • Could not find {file_path} from repository {repo_name} hosted on {host} using version {commit_sha}. One of the directories in the path contains too many files or subdirectories.
  • Çalıştırma adı genellikle YAML işlem hattı yükünün başarısız olmasına neden olan BitBucket / GitHub hatasını içerir
  • Aşama / iş / adım yok

Bilgilendirme çalıştırmaları hakkında daha fazla bilgi edinin.

Sınırlamalar

Azure Pipelines, bir depodan en fazla 2000 dalı Azure Devops Portalı'ndaki açılan listelere yükler. Örneğin, el ile ve zamanlanmış derlemeler için Varsayılan dal ayarına veya işlem hattını el ile çalıştırırken dal seçerken. listede istediğiniz dalı görmüyorsanız, istediğiniz dal adını el ile yazın.

SSS

Bitbucket tümleştirmesi ile ilgili sorunlar aşağıdaki kategorilere ayrılır:

  • Başarısız tetikleyiciler: Depoya güncelleştirme gönderdiğimde işlem hattım tetiklenmiyor.
  • Yanlış sürüm: İşlem hattım çalışıyor, ancak kaynağın/YAML'nin beklenmeyen bir sürümünü kullanıyor.

Başarısız tetikleyiciler

CI/PR tetikleyicileriyle yeni bir YAML işlem hattı oluşturdum, ancak işlem hattı tetiklenmiyor.

Başarısız tetikleyicilerinizin sorunlarını gidermek için aşağıdaki adımların her birini izleyin:

  • YAML CI veya PR tetikleyicileriniz kullanıcı arabirimindeki işlem hattı ayarları tarafından geçersiz kılınıyor mu? İşlem hattınızı düzenlerken ... ve ardından Tetikleyiciler'i seçin.

    Pipeline settings UI.

    Deponuz için kullanılabilir tetikleyici türleri (Sürekli tümleştirme veya Çekme isteği doğrulaması) için buradan YAML tetikleyicisini geçersiz kıl ayarını işaretleyin.

    Override YAML trigger from here.

  • Web kancaları, Bitbucket'ten Azure Pipelines'a güncelleştirmeleri iletmek için kullanılır. Bitbucket'te deponuzun ayarlarına ve ardından Web Kancaları'na gidin. Web kancalarının var olduğunu doğrulayın.
  • İşlem hattınız duraklatıldı mı yoksa devre dışı mı bırakıldı? İşlem hattının düzenleyicisini açın ve denetlemek için Ayarlar seçin. İşlem hattınız duraklatılmış veya devre dışı bırakılmışsa tetikleyiciler çalışmaz.

  • YAML dosyasını doğru dalda güncelleştirdiniz mi? Bir güncelleştirmeyi bir dala iletirseniz, CI davranışını aynı daldaki YAML dosyası yönetir. Bir güncelleştirmeyi bir kaynak dala iletirseniz, kaynak dalın hedef dalla birleştirilmesinden kaynaklanan YAML dosyası çekme isteği davranışını yönetir. Doğru daldaki YAML dosyasının gerekli CI veya PR yapılandırmasına sahip olduğundan emin olun.

  • Tetikleyiciyi doğru yapılandırdınız mı? BIR YAML tetikleyicisi tanımlarken dallar, etiketler ve yollar için hem include hem de exclude yan tümcelerini belirtebilirsiniz. include yan tümcesinin işlemenizin ayrıntılarıyla eşleştiğinden ve exclude yan tümcesinin bunları dışlamadığından emin olun. Tetikleyicilerin söz dizimini denetleyin ve doğru olduğundan emin olun.

  • Tetikleyiciyi veya yolları tanımlarken değişkenleri kullandınız mı? Bu desteklenmez.

  • YAML dosyanız için şablonları kullandınız mı? Öyleyse, tetikleyicilerinizin ana YAML dosyasında tanımlandığından emin olun. Şablon dosyalarının içinde tanımlanan tetikleyiciler desteklenmez.

  • Değişikliklerinizi iletmiş olduğunuz dalları veya yolları dışladiniz mi? Eklenen bir daldaki dahil edilen yola bir değişiklik göndererek test edin. Tetikleyicilerdeki yolların büyük/küçük harfe duyarlı olduğunu unutmayın. Tetikleyicilerdeki yolları belirtirken gerçek klasörlerinkilerle aynı büyük/küçük harf kullandığınızdan emin olun.

  • Yeni bir dal mı ittirdin? Bu durumda, yeni dal yeni bir çalıştırma başlatamayabilir. "Yeni dallar oluşturulduğunda tetikleyicilerin davranışı" bölümüne bakın.

CI veya PR tetikleyicilerim sorunsuz çalışıyor. Ama artık çalışmayı bıraktılar.

İlk olarak önceki sorudaki sorun giderme adımlarını izleyin. Ardından şu ek adımları izleyin:

  • Çekme isteğinizde birleştirme çakışmaları var mı? İşlem hattını tetiklemeyen bir çekme isteği için açın ve birleştirme çakışması olup olmadığını denetleyin. Birleştirme çakışmasını çözün.

  • Gönderme veya çekme isteği olaylarının işlenmesinde gecikme mi yaşıyorsunuz? Genellikle sorunun tek bir işlem hattına özgü olup olmadığını veya projenizdeki tüm işlem hatları veya depolar için ortak olup olmadığını görerek bunu doğrulayabilirsiniz. Depolardan herhangi birine gönderim veya çekme isteği güncelleştirmesi bu belirtiyi gösterirse, güncelleştirme olaylarını işlemede gecikmeler yaşıyor olabiliriz. Durum sayfamızda hizmet kesintisi yaşanıp karşılaşmadığımıza bakın. Durum sayfasında bir sorun görünüyorsa ekibimizin bu sorun üzerinde çalışmaya başlamış olması gerekir. Sorunla ilgili güncelleştirmeler için sayfayı sık sık denetleyin.

Kullanıcıların YAML dosyasını güncelleştirdiklerinde tetikleyiciler için dal listesini geçersiz kılmasını istemiyorum. Bunu nasıl yapabilirim?

Koda katkıda bulunma izinleri olan kullanıcılar YAML dosyasını güncelleştirebilir ve ek dalları dahil edebilir/hariç tutabilir. Sonuç olarak, kullanıcılar YAML dosyalarına kendi özellik veya kullanıcı dallarını ekleyebilir ve bu güncelleştirmeyi bir özelliğe veya kullanıcı dalına gönderebilir. Bu, işlem hattının bu daldaki tüm güncelleştirmeler için tetik edilmesine neden olabilir. Bu davranışı önlemek istiyorsanız şunları yapabilirsiniz:

  1. Azure Pipelines kullanıcı arabiriminde işlem hattını düzenleyin.
  2. Tetikleyiciler menüsüne gidin.
  3. Buradan YAML sürekli Tümleştirme tetikleyicisini geçersiz kıl'ı seçin.
  4. Tetikleyici için eklenecek veya hariç tutulacak dalları belirtin.

Bu adımları uyguladığınızda, YAML dosyasında belirtilen tüm CI tetikleyicileri yoksayılır.

Yanlış sürüm

İşlem hattında YAML dosyasının yanlış bir sürümü kullanılıyor. Bunun nedeni nedir?

  • CI tetikleyicileri için, göndermekte olduğunuz dalda bulunan YAML dosyası, ci derlemesinin çalıştırılıp çalıştırılmaması gerektiğini görmek için değerlendirilir.
  • Çekme isteği tetikleyicileri için, çekme isteğinin kaynak ve hedef dallarının birleştirilmesinden kaynaklanan YAML dosyası, çekme isteği derlemesinin çalıştırılıp çalıştırılmaması gerektiğini görmek için değerlendirilir.