Derlemeler, sürümler ve testler için bekletme ilkeleri ayarlama

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Saklama ilkeleri ile çalıştırmaları, yayınları ve testleri sistemde ne kadar süreyle depolayabileceğinizi ayarlayabilirsiniz. Depolama alanından tasarruf etmek için eski çalıştırmaları, testleri ve sürümleri silmek istiyorsunuz.

Aşağıdaki bekletme ilkeleri, Proje ayarlarınızda Azure DevOps'ta kullanılabilir:

  1. İşlem Hattı - Yapıtların, simgelerin, eklerin, çalıştırmaların ve çekme isteği çalıştırmalarının ne kadar süreyle tutulacaklarını ayarlayın.
  2. Yayın (klasik) - Derlemelerin kaydedilip kaydedilmeyeceğini ve varsayılan ve en yüksek bekletme ayarlarının görüntülenip görüntülenmeyeceğini ayarlayın.
  3. Test - Otomatik ve el ile test çalıştırmalarının, sonuçlarının ve eklerinin ne kadar süreyle tutulacaklarını ayarlayın.

Proje ayarları bekletme ilkeleri

Not

Şirket içi sunucu kullanıyorsanız, bir proje için bekletme ilkesi varsayılanlarını ve yayınlar kalıcı olarak yok edildiğinde de belirtebilirsiniz. Bu makalenin devamında yayın saklama hakkında daha fazla bilgi edinin.

Önkoşullar

Varsayılan olarak, saklama ilkelerini Katkıda Bulunanlar, Derleme Yöneticileri, Proje Yöneticileri ve Yayın Yöneticileri gruplarının üyeleri yönetebilir.

Saklama ilkelerini yönetmek için aşağıdaki aboneliklerden birine sahip olmanız gerekir:

Ayrıca Azure Test Plans için aylık erişim satın alabilir ve Temel + Test Plans erişim düzeyini atayabilirsiniz. Bkz. Kullanıcı rolüne göre erişimi test etme.

Bekletme ilkelerini yapılandırma

  1. Projenizde oturum açın.

  2. dişli simgesi Projenizin ayarlarının Ayarlar sekmesine gidin.

  3. İşlem Hatları'nın altında Yayın saklama veya Test altında Bekletme'yi seçin.

    • Yayın saklama ilkelerinizi ayarlamak ve yayınların ne zaman silineceği veya kalıcı olarak yok edileceklerini yapılandırmak için Yayın saklama'yı seçin.
    • El ile ve otomatikleştirilmiş test çalıştırmalarının ne kadar süreyle tutulacaklarını ayarlamak için Bekletme'yi seçin.

    DevOps 2019 için Project ayarlarında bekletme ayarlarının ekran görüntüsü.

Bekletme ilkelerini yapılandırma

  1. Projenizde oturum açın.

  2. dişli simgesi Projenizin ayarlarının Ayarlar sekmesine gidin.

  3. Test altında İşlem Hatları veya Bekletme altında Ayarlar veya Yayın bekletme'yi seçin.

    • Çalıştırmalar, yapıtlar, simgeler, ekler ve çekme isteği çalıştırmaları için bekletme ilkelerini yapılandırmak için Ayarlar'ı seçin.
    • Yayın saklama ilkelerinizi ayarlamak ve yayınların ne zaman silineceği veya kalıcı olarak yok edileceklerini yapılandırmak için Yayın saklama'yı seçin.
    • El ile ve otomatikleştirilmiş test çalıştırmalarının ne kadar süreyle tutulacaklarını ayarlamak için Bekletme'yi seçin.

    Proje ayarlarında bekletme ayarlarının ekran görüntüsü.

Önemli

Azure Pipelines artık işlem hattı başına bekletme ilkelerini desteklememektedir. Proje düzeyinde saklama kurallarını kullanmanızı öneririz.

Çalıştırma bekletme ilkelerini ayarlama

Çoğu durumda, tamamlanan çalıştırmaları belirli sayıda günden daha uzun süre tutmanız gerekmez. Bekletme ilkelerini kullanarak, her çalıştırmayı silmeden önce kaç gün tutmak istediğinizi denetleyebilirsiniz.

  1. dişli simgesi Projenizin ayarlarının Ayarlar sekmesine gidin.

  2. İşlem Hatları bölümünde Ayarlar'ı seçin.

Uyarı

Azure DevOps artık işlem hattı başına saklama kurallarını desteklememektedir. YAML ve klasik işlem hatları için bekletme ilkelerini yapılandırmanın tek yolu, yukarıda açıklanan proje ayarlarıdır. Artık işlem hattı başına bekletme ilkelerini yapılandırasınız.

Her işlem hattı için tutulacak son çalıştırma sayısı ayarı biraz daha fazla açıklama gerektirir. Bu ayarın yorumu, işlem hattınızda oluşturduğunuz depo türüne göre değişir.

  • Azure Depoları: Azure Pipelines, işlem hattının varsayılan dalı ve deponun her korumalı dalı için yapılandırılmış en son çalıştırma sayısını korur. Herhangi bir dal ilkesi yapılandırılmış bir dal, korumalı dal olarak kabul edilir.

    Örneğin, ve olmak üzere iki dallı main releasebir depo düşünün. dalı pipeline's default branch olduğunu main ve dalın release bir dal ilkesi olduğunu ve bunu korumalı bir dal haline getirdiğini düşünün. Bu durumda, ilkeyi üç çalıştırmayı koruyacak şekilde yapılandırdıysanız, dalın hem en son üç çalıştırması main hem de en son üç çalıştırması release korunur. Ayrıca, bu işlem hattının en son üç çalıştırması da (daldan bağımsız olarak) korunur.

    Bu mantığı daha da netleştirmek için, bu işlem hattı için çalıştırma listesinin aşağıdaki gibi olduğunu ve en son çalıştırmanın en üstte olduğunu düşünelim. Tablo, en son üç çalıştırmayı (gün sayısı ayarının etkisini yoksayarak) korumak için yapılandırdıysanız hangi çalıştırmaların tutulacağını gösterir:

    Koşmak # Şube Korundu / Korunmadı Neden?
    10'u çalıştır main Korunur Ana sürüm için en son 3 ve işlem hattı için en son 3
    Çalıştırma 9 branch1 Korunur İşlem hattı için en son 3
    Çalıştırma 8 branch2 Korunur İşlem hattı için en son 3
    Çalıştırma 7 main Korunur Main için en son 3
    Çalıştırma 6 main Korunur Main için en son 3
    Çalıştırma 5 main Korunmadı Ne main için ne de işlem hattı için en son 3
    Çalıştırma 4 main Korunmadı Ne main için ne de işlem hattı için en son 3
    Çalıştırma 3 branch1 Korunmadı Ne main için ne de işlem hattı için en son 3
    Çalıştırma 2 serbest bırakma Korunur Yayın için en son 3
    Çalıştırma 1 main Korunmadı Ne main için ne de işlem hattı için en son 3
  • Diğer tüm Git depoları: Azure Pipelines, işlem hattının tamamı için yapılandırılmış en son çalıştırma sayısını korur.

  • TFVC: Azure Pipelines, daldan bağımsız olarak işlem hattının tamamı için yapılandırılmış en son çalıştırma sayısını korur.

Çalıştırmanın hangi bölümleri silinir?

Bir çalıştırma silindiğinde aşağıdaki bilgiler silinir:

  • Günlükler
  • Tüm işlem hattı ve derleme yapıtları
  • Tüm simgeler
  • İkililer
  • Test sonuçları
  • Meta verileri çalıştırma
  • Kaynak etiketleri (TFVC) veya etiketler (Git)

Evrensel paketler, NuGet, npm ve diğer paketler işlem hattı saklamaya bağlı değildir.

Çalıştırmalar ne zaman silinir?

Bekletme ilkeleriniz günde bir kez işlenir. İşi yük dengeleme amacıyla gün boyunca yaydığımız için ilkelerin işlendiği değişkenlere sahip olduğu süre. Bu işlemi değiştirme seçeneği yoktur.

Aşağıdaki koşulların tümü doğruysa bir çalıştırma silinir:

  • Bekletme ayarlarında yapılandırılan gün sayısını aşıyor
  • Saklama ayarlarında yapılandırılan son çalıştırmalardan biri değildir
  • Süresiz olarak korunacak şekilde işaretlenmedi
  • Bir yayın tarafından korunmaz

İşlem hattı çalıştırmalarında bekletme kiralamayı otomatik olarak ayarlama

Bekletme kiralamaları, yapılandırılmış saklama sürelerinin ötesinde işlem hattı çalıştırmalarının ömrünü yönetmek için kullanılır. Kiralama API'sini çağırarak bir işlem hattı çalıştırması üzerinde bekletme kiralamaları eklenebilir veya silinebilir. Bu API, bir betik kullanılarak ve runId ve definitionId için önceden tanımlanmış değişkenler kullanılarak işlem hattı içinde çağrılabilir.

Belirli bir süre için bir işlem hattı çalıştırması üzerinde bekletme kiralaması eklenebilir. Örneğin, bir test ortamına dağıtılan bir işlem hattı çalıştırması daha kısa bir süre boyunca, üretim ortamına dağıtılan bir çalıştırma ise daha uzun süre tutulabilir.

İşlem hattı çalıştırmalarında bekletme kiralamayı el ile ayarlama

İşlem hattı çalıştırması ayrıntıları sayfasındaki Diğer eylemler menüsünü kullanarak bir işlem hattı çalıştırmasını el ile tutulacak şekilde ayarlayabilirsiniz.

çalıştırmayı el ile tutma

Çalıştırmayı silme

İşlem hattı çalıştırma ayrıntıları sayfasındaki Diğer eylemler menüsünü kullanarak çalıştırmaları silebilirsiniz.

Not

Şu anda çalıştırmaya uygulanan bekletme ilkeleri varsa, çalıştırmanın silinebilmesi için önce bunların kaldırılması gerekir. Yönergeler için bkz . İşlem hattı çalıştırma ayrıntıları - çalıştırmayı silme.

çalıştırmayı silme

Yayın bekletme ilkelerini ayarlama

Klasik yayın işlem hattı için yayın bekletme ilkeleri, bir yayının ve buna bağlı çalıştırmanın ne kadar süreyle tutulacaklarını belirler. Bu ilkeleri kullanarak, son değiştirildikten veya dağıtıldıktan sonra her yayını kaç gün tutmak istediğinizi ve her işlem hattı için saklanması gereken en düşük sürüm sayısını denetleyebilirsiniz.

Yayında bekletme zamanlayıcısı, bir yayın her değiştirildiğinde veya bir aşamaya dağıtıldığında sıfırlanır. Ayarın korunacak en az yayın sayısı, gün sayısından daha önceliklidir. Örneğin, en az üç sürümün korunmasını belirtirseniz, belirtilen gün sayısından bağımsız olarak en son üçü süresiz olarak korunur. Ancak, artık gerekli olmadığında bu sürümleri el ile silebilirsiniz. Sürüm saklamanın nasıl çalıştığı hakkında daha fazla bilgi için aşağıdaki SSS bölümüne bakın.

Yayın işlem hattının yazarı olarak Bekletme sekmesinde işlem hattınızın yayınları için bekletme ilkelerini özelleştirebilirsiniz.

YAML ve derleme işlem hatları için bekletme ilkesi aynıdır. İşlem hattınızın bekletme ayarlarını Ayarlar bölümünde İşlem Hatları için Proje Ayarları'nda görebilirsiniz.

Genel sürüm saklama ilkesi

Şirket içi Team Foundation Server veya Azure DevOps Server kullanıyorsanız, bir proje için yayın bekletme ilkesi varsayılanlarını ve maksimumlarını belirtebilirsiniz. Yayınların kalıcı olarak ne zaman yok edildiğini de belirtebilirsiniz (derleme gezginindeki Silinmiş sekmesinden kaldırılır).

Şirket içi sürüm saklama ayarları

Azure DevOps Services kullanıyorsanız, projeniz için bu ayarları görüntüleyebilir ancak değiştiremezsiniz.

Genel sürüm saklama ilkesi ayarları, projenizin Yayın bekletme ayarlarından gözden geçirilebilir:

  • Azure DevOps Services: https://dev.azure.com/{organization}/{project}/_settings/release?app=ms.vss-build-web.build-release-hub-group
  • Şirket içi: https://{your_server}/tfs/{collection_name}/{project}/_admin/_apps/hub/ms.vss-releaseManagement-web.release-project-admin-hub

Maksimum bekletme ilkesi , tüm yayın işlem hatlarında yayınların ne kadar süreyle tutulabileceğine ilişkin üst sınırı ayarlar. Yayın işlem hatlarının yazarları tanımları için ayarları burada belirtilen değerlerin ötesinde yapılandıramaz.

Varsayılan bekletme ilkesi , tüm yayın işlem hatları için varsayılan bekletme değerlerini ayarlar. Derleme işlem hatlarının yazarları bu değerleri geçersiz kılabilir.

Yok etme ilkesi , yayınları silindikten sonra belirli bir süre saklamanıza yardımcı olur. Bu ilke, tek tek yayın işlem hatlarında geçersiz kılınamaz.

Koleksiyon düzeyinde bekletme ilkelerini ayarlama

Şirket içi sunucular için, özel bekletme kurallarıyla koleksiyon düzeyinde bekletme ilkelerini de ayarlayabilirsiniz. Bu bekletme ilkeleri Klasik derleme işlem hatları için geçerlidir. sayfasındaki sayfa https://{your_server}/{collection_name}/_settings/buildqueue , en yüksek değerlerinizi ve varsayılan değerlerinizi yönetir.

Koleksiyon düzeyinde bekletme ilkelerini yapılandırmayı gösteren ekran görüntüsü.

Verileri daha uzun süre kaydetmek için Dosyaları Kopyala görevini kullanma

Derleme ve yapıt verilerinizi bekletme ilkelerinde ayarlanandan daha uzun süre kaydetmek için Dosyaları Kopyala görevini kullanabilirsiniz. Derleme Yapıtlarını Yayımla göreviyle kaydedilen veriler düzenli aralıklarla temizlenip silineceği için Dosyaları Kopyala görevi Derleme Yapıtlarını Yayımla görevine tercih edilir.

- task: CopyFiles@2
  displayName: 'Copy Files to: \\mypath\storage\$(Build.BuildNumber)'
  inputs:
    SourceFolder: '$(Build.SourcesDirectory)'
    Contents: '_buildOutput/**'
    TargetFolder: '\\mypath\storage\$(Build.BuildNumber)'

SSS

Bir çalıştırmayı veya yayını süresiz olarak tutulacak şekilde işaretlersem bekletme ilkesi yine de geçerli olur mu?

Hayır Tek bir çalıştırmayı veya yayını süresiz olarak korunacak şekilde işaretlediğinizde ne işlem hattının bekletme ilkesi ne de yönetici tarafından ayarlanan maksimum sınırlar uygulanır. Süresiz olarak saklamayı durdurana kadar kalır.

üretime dağıtılan çalıştırmaların daha uzun süre tutulacağını Nasıl yaparım? belirtin?

Üretime dağıtmak için klasik sürümleri kullanıyorsanız yayın işlem hattındaki bekletme ilkesini özelleştirin. Üretime dağıtılan yayınların saklanması gereken gün sayısını belirtin. Ayrıca, bu sürümle ilişkili çalıştırmaların korunduğunu belirtin. Bu, çalıştırma bekletme ilkesini geçersiz kılar.

Üretime dağıtmak için çok aşamalı YAML işlem hatları kullanıyorsanız, yapılandırabileceğiniz tek bekletme ilkesi proje ayarlarındadır. Derlemenin dağıtıldığı ortama göre bekletmeyi özelleştiremezsiniz.

Çalıştırmaları süresiz olarak tutulacak şekilde işaretlemedim. Ancak, çok sayıda çalıştırmanın korunmakta olduğunu görüyorum. Bunu nasıl önleyebilirim?

Bunun nedeni aşağıdakilerden biri olabilir:

  • Çalıştırmalar, projenizdeki biri tarafından süresiz olarak korunacak şekilde işaretlenir.
  • Çalıştırmalar bir yayın tarafından kullanılır ve sürüm bu çalıştırmalarda bekletme kilidi tutar. Yayın bekletme ilkesini yukarıda açıklandığı gibi özelleştirin.

Çalıştırmaların artık gerekli olmadığını düşünüyorsanız veya yayınlar zaten silinmişse, çalıştırmaları el ile silebilirsiniz.

'Tutulacak en düşük sürümler' ayarı nasıl çalışır?

Tutulacak en düşük sürümler aşama düzeyinde tanımlanır. Azure DevOps'un, yayınların saklama süresi sona ermiş olsa bile bir aşama için verilen sayıda son dağıtılan sürümü her zaman saklayacağını belirtir. Bir sürüm, yalnızca dağıtım o aşamada başlatıldığında bir aşama için tutulacak en düşük sürümler altında dikkate alınır. Hem başarılı hem de başarısız dağıtımlar dikkate alınır. Onay bekleyen sürümler dikkate alınmaz.

Yayın farklı saklama süresine sahip birden çok aşamaya dağıtıldığında bekletme süresi nasıl belirlenir?

Son saklama süresi, yayının dağıtıldığı tüm aşamaların ayarlarını tutmak için günler dikkate alınarak ve bunların arasında tutulması en fazla gün alarak karar verir. Tutulacak en düşük sürümler aşama düzeyinde yönetilir ve birden çok aşamaya dağıtılan veya dağıtılmayan sürüme göre değişmez. Yayın, true olarak ayarlandığı bir aşamaya dağıtıldığında ilişkili yapıtları koruma uygulanabilir.

Bazı eski sürümlerim olan bir aşamayı sildim. Bu durum için hangi saklama dikkate alınacaktır?

Aşama silindiğinden, aşama düzeyinde saklama ayarları artık geçerli değildir. Azure DevOps, bu tür durumlar için proje düzeyinde varsayılan saklamaya geri döner.

Kuruluşum, derlemeleri ve sürümleri ayarlarda izin verilenden daha uzun süre saklamamızı gerektiriyor. Daha uzun bir saklama süresi istemek için ne yapmalıyım?

Bir çalıştırmayı veya yayını bekletme ayarları aracılığıyla izin verilenden daha uzun süre tutmanın tek yolu, süresiz olarak korunacak şekilde el ile işaretlemektir. Daha uzun bir saklama ayarını el ile yapılandırmanın bir yolu yoktur. Yardım için lütfen Azure DevOps Desteği'ne ulaşın.

Ayrıca, çalıştırmalar hakkındaki bilgileri ve yapıtları indirmek ve bunları kendi depolama veya yapıt deponuza yüklemek için REST API'lerini kullanma olasılığını keşfedebilirsiniz.

Bazı koşuları kaybettim. Bunları geri almanın bir yolu var mı?

Hizmetteki bir hata nedeniyle çalıştırmaları kaybettiğinizi düşünüyorsanız, kayıp bilgileri kurtarmak için hemen bir destek bileti oluşturun. Derleme tanımı bir haftadan daha uzun bir süre önce el ile silindiyse, bunu kurtarmak mümkün olmayacaktır. Çalıştırmalar bekletme ilkesi nedeniyle beklendiği gibi silindiyse kayıp çalıştırmaları kurtarmak mümkün olmayacaktır.

Aracıların Build.Cleanup özelliğini Nasıl yaparım? kullanabilirsiniz?

Aracılarda bir Build.Cleanup özellik ayarlamak, havuzun temizleme işlerinin yalnızca bu aracılara yönlendirilmesine neden olur ve kalanları normal işleri yapmak için serbest bırakır. İşlem hattı çalıştırması silindiğinde, Azure DevOps dışında depolanan yapıtlar aracılar üzerinde çalıştırılacak bir iş aracılığıyla temizlenir. Aracı havuzu temizleme işleriyle doygunluğa ulaştığında, bu bir soruna neden olabilir. Bunun çözümü, havuzdaki temizleme aracıları olan aracıların bir alt kümesini belirlemedir. Herhangi bir aracı Build.Cleanup ayarlandıysa, temizleme işlerini yalnızca bu aracılar çalıştırır ve diğer aracıları işlem hattı işlerini çalıştırmaya serbest bırakır. Temizleme işlevi Aracı>Özellikleri'ne gidip değerine eşit 1olarak ayarlanarak Build.Cleanup etkinleştirilebilir.

Derleme silindiğinde dosya paylaşımı Yapıtlarına ne olur?

Dosya paylaşımı Yapıtları içeren bir derleme silindiğinde, bu dosyaları temizlemek için derleme aracısı üzerinde yeni bir derleme görevi kuyruğa alınır. Bu görevi gerçekleştirmek için aşağıdaki ölçütlere göre bir aracı seçilir: Kullanılabilir özelliğe sahip Build.Cleanup bir aracı var mı? Derlemeyi çalıştıran aracı kullanılabilir mi? Aynı havuzdan bir aracı kullanılabilir mi? Benzer bir havuzdan aracı kullanılabilir mi? Kullanılabilir aracı var mı?

Yayının bir parçası olarak yayımlanan otomatikleştirilmiş test sonuçları, yayın silinene kadar korunur mu?

Yayının bir aşamasında yayımlanan test sonuçları, test sonuçları için yapılandırılan bekletme ilkesi tarafından belirtildiği şekilde korunur. Yayın tutulana kadar test sonuçları korunmaz. Yayın süresi boyunca test sonuçlarına ihtiyacınız varsa, Proje ayarlarında otomatik test çalıştırmaları için bekletme ayarlarını Hiçbir zaman silme olarak ayarlayın. Bu, test sonuçlarının yalnızca yayın silindiğinde silinmesini sağlar.

El ile test sonuçları silindi mi?

Hayır El ile test sonuçları silinmez.

Sürüm kontrol etiketlerimi nasıl korurum?

Dikkat

Bir derleme işlem hattı sırasında uygulanan ve Kaynaklar görevinden otomatik olarak oluşturulmamış tüm sürüm denetimi etiketleri veya etiketleri, derleme silinse bile korunur. Ancak, bir derleme sırasında Kaynaklar görevinden otomatik olarak oluşturulan tüm sürüm kontrol etiketleri, derleme yapıtlarının bir parçası olarak kabul edilir ve derleme silindiğinde silinir.

Sürüm kontrol etiketlerinin derleme silindiğinde bile korunması gerekiyorsa, bunların işlem hattındaki bir görevin parçası olarak uygulanması, işlem hattının dışında el ile etiketlenmiş olması veya derlemenin süresiz olarak korunması gerekir.

Diğer işlem hatlarında kullanılan işlem hatlarına ne olur?

Klasik sürümler, otomatik olarak kullandıkları işlem hatlarını korur.

Diğer işlem hatlarında kullanılan işlem hatlarına ne olur?

Klasik sürümler, otomatik olarak kullandıkları işlem hatlarını korur. YAML kullanıyorsanız, yayınınızı göstermek için çok aşamalı bir YAML işlem hattı oluşturabilir ve kaynak olarak başka bir YAML işlem hattı kullanabilirsiniz. Yayın işlem hattı korunduysa kaynak işlem hattı otomatik olarak korunur.