Aracılığıyla paylaş


İşlem hattı çalıştırmaları

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

Bu makalede Azure Pipelines işlem hattı çalıştırmalarındaki etkinliklerin sırası açıklanmaktadır. Çalıştırma, işlem hattının tek bir yürütmesini temsil eder. Hem sürekli tümleştirme (CI) hem de sürekli teslim (CD) işlem hatları çalıştırmalardan oluşur. Bir çalıştırma sırasında Azure Pipelines işlem hattını işler ve aracılar bir veya daha fazla işi, adımı ve görevi işler.

İşlem hattına genel bakış gösteren diyagram.

Her çalıştırma için Azure Pipelines:

  • İşlem hattını işler.
  • İşleri çalıştırmak için bir veya daha fazla aracı ister.
  • İşleri aracılara devrederek sonuçları toplar.

Her iş için bir aracı:

  • İş için hazırlanır.
  • İşteki her adımı çalıştırır.
  • Sonuçları raporlar.

İşler başarılı, başarısız, iptal edilebilir veya tamamlanmayabilir. Bu sonuçları anlamak sorunları gidermenize yardımcı olabilir.

Aşağıdaki bölümlerde işlem hattı çalıştırma işlemi ayrıntılı olarak açıklanmaktadır.

İşlem hattı işleme

Genişleyen YAML şablonlarını gösteren diyagram.

Bir çalıştırmanın işlem hattını işlemek için önce Azure Pipelines:

  1. Şablonları genişletir ve şablon ifadelerini değerlendirir.
  2. Çalıştırılacak ilk aşamayı seçmek için aşama düzeyinde bağımlılıkları değerlendirir.

Çalıştırmayı seçtiği her aşama için Azure Pipelines:

  1. Yetkilendirmenin çalıştırılması için tüm iş kaynaklarını toplar ve doğrular.
  2. Çalıştırılacak ilk işi seçmek için iş düzeyinde bağımlılıkları değerlendirir.

Azure Pipelines, çalıştırmak için seçtiği her iş için aşağıdaki etkinlikleri yapar:

  1. YAML strategy: matrix veya strategy: parallel çoklu yapılandırmaları birden çok çalışma zamanı işine genişletir.
  2. İşin çalıştırılmaya uygun olup olmadığına karar vermek için koşulları değerlendirir.
  3. Uygun olan her iş için bir aracı talep eder.

Çalışma zamanı işleri tamamlandıkça Azure Pipelines, çalıştırılmaya uygun yeni işler olup olmadığını denetler. Benzer şekilde, aşamalar tamamlandıktan sonra Azure Pipelines başka aşama olup olmadığını denetler.

Değişkenler

İşleme sırasını anlamak, şablon parametrelerinde belirli değişkenleri neden kullanamamanızı açıklar. İlk şablon genişletme adımı yalnızca YAML dosyasının metni üzerinde çalışır. Çalışma zamanı değişkenleri bu adım sırasında henüz mevcut değildir. Bu adımdan sonra şablon parametreleri zaten çözümlenir.

İşlem hattı, bir aşama çalışmaya başlamadan önce kaynakları yetkilendirdiğinden, hizmet bağlantısını veya ortam adlarını çözümlemek için değişkenleri de kullanamazsınız. Aşama ve iş düzeyi değişkenleri henüz kullanılamıyor. Değişken grupları kendileri yetkilendirmeye tabi bir kaynaktır, bu nedenle kaynak yetkilendirmesi denetlenirken verileri kullanılamaz.

İşlem hattı kaynak tanımına açıkça dahil edilen işlem hattı düzeyinde değişkenleri kullanabilirsiniz. Daha fazla bilgi için bkz . Önceden tanımlanmış değişkenler olarak işlem hattı kaynak meta verileri.

Aracılar

Azure Pipelines'ın bir işi çalıştırması gerektiğinde, havuzdan bir aracı ister. Bu işlem Microsoft tarafından barındırılan ve şirket içinde barındırılan aracı havuzları için farklı çalışır.

Not

Sunucu işleri , Azure Pipelines sunucusunun kendisinde çalıştığından havuz kullanmaz.

Havuz seçimini gösteren diyagram.

Paralel işler

İlk olarak, Azure Pipelines kuruluşunuzun paralel işlerini denetler. Hizmet, tüm aracılardaki tüm çalışan işleri ekler ve bunu verilen veya satın alınan paralel iş sayısıyla karşılaştırır.

Kullanılabilir paralel yuva yoksa, işin boşaltmak için bir yuvada beklemesi gerekir. Paralel yuva kullanılabilir olduğunda, iş uygun aracı türüne yönlendirir.

Microsoft tarafından barındırılan aracılar

Kavramsal olarak, Microsoft tarafından barındırılan havuz, fiziksel olarak coğrafyaya ve işletim sistemi türüne göre bölünmüş birçok farklı havuz olmasına rağmen bir genel makine havuzudur. İstenen YAML vmImage veya Klasik düzenleyici havuzu adına bağlı olarak Azure Pipelines bir aracı seçer.

Microsoft havuzundaki tüm aracılar, hiç işlem hattı çalıştırmamış yeni, yeni sanal makinelerdir (VM'ler). İş tamamlandığında aracı VM atılır.

Şirket içinde barındırılan aracılar

Paralel yuva kullanılabilir olduğunda, Azure Pipelines uyumlu bir aracı için şirket içinde barındırılan havuzu inceler. Şirket içinde barındırılan aracılar, belirli yazılımların yüklendiğini veya ayarların yapılandırıldığını gösteren özellikler sunar. İşlem hattı, işi çalıştırmak için gereken özellikler olan taleplere sahiptir.

Azure Pipelines, özellikleri işlem hattının taleplerine uyan ücretsiz bir aracı bulamazsa, iş beklemeye devam eder. Havuzda yetenekleri taleplerle eşleşen aracı yoksa, iş başarısız olur.

Şirket içinde barındırılan aracılar genellikle çalıştırmadan çalıştırılacak şekilde yeniden kullanılır. Şirket içinde barındırılan aracılar için, bir işlem hattı işinin önbellekleri ısıtma veya yerel depoda zaten kullanılabilir olan işlemelerin çoğu gibi yan etkileri olabilir.

İş hazırlığı

Bir aracı bir işi kabul ettikten sonra aşağıdaki hazırlık çalışmalarını yapar:

  1. İşi çalıştırmak için gereken tüm görevleri indirir ve gelecekte kullanmak üzere önbelleğe alır.
  2. Çalıştırmada kullanılan kaynak kodu, yapıtları ve çıkışları tutmak için diskte çalışma alanı oluşturur.

Adım yürütme

Aracı sıralı olarak adımları çalıştırır. Bir adımın başlayabilmesi için önceki tüm adımların tamamlanması veya atlanması gerekir.

Her görevi çalıştırmayı gösteren diyagram.

Adımlar Node.js, PowerShell veya diğer betikler olabilecek görevler tarafından uygulanır. Görev sistemi, girişleri ve çıkışları yedekleme betiklerine yönlendirir. Görevler ayrıca sistem yolunu değiştirme ve yeni işlem hattı değişkenleri oluşturma gibi yaygın hizmetler sağlar.

Her adım kendi işleminde çalıştırılır ve ortamı önceki adımlardan yalıtılır. Bu adım başına işlem modeli nedeniyle, ortam değişkenleri adımlar arasında korunmaz. Ancak, görevler ve betikler aracıyla geri iletişim kurmak için günlüğe kaydetme komutları adlı bir mekanizma kullanabilir. Bir görev veya betik standart çıkışa bir günlük komutu yazdığında, aracı komutun istediği eylemi uygular.

Yeni işlem hattı değişkenleri oluşturmak için bir günlük komutu kullanabilirsiniz. İşlem hattı değişkenleri, sonraki adımda otomatik olarak ortam değişkenlerine dönüştürülür. Betik, aşağıdaki gibi bir değere myValue sahip yeni bir değişken myVar ayarlayabilir:

echo '##vso[task.setVariable variable=myVar]myValue'
Write-Host "##vso[task.setVariable variable=myVar]myValue"

Sonuç raporlama ve toplama

Her adım uyarıları, hataları ve hataları bildirebilir. Adım, görevleri başarılı olarak işaretleyerek işlem hattı özet sayfasındaki hataları ve uyarıları bildirir veya görevi başarısız olarak işaretleyerek hataları bildirir. Bir komut kullanarak açıkça hata bildiriyorsa veya betiği sıfır olmayan bir ##vso çıkış koduyla sonlandırırsa adım başarısız olur.

Adımlar çalıştırıldığında aracı, konsolun canlı akışını görebilmeniz için çıkış satırlarını sürekli olarak Azure Pipelines'a gönderir. Her adımın sonunda, adımdaki çıkışın tamamı günlük dosyası olarak karşıya yüklenir. İşlem hattı tamamlandıktan sonra günlüğü indirebilirsiniz.

Günlüklerin ve sonuçların aracıdan hizmete nasıl aktığını gösteren diyagram.

Aracı, işlem hattı tamamlandıktan sonra da kullanılabilen yapıtları ve test sonuçlarını karşıya yükleyebilir.

Durum ve koşullar

Aracı, her adımın başarısını veya başarısızlığını izler. Adımlar sorunlarla başarılı veya başarısız olduğunda işin durumu güncelleştirilir. İş her zaman adımlarının en kötü sonucunu yansıtır. Bir adım başarısız olursa, iş de başarısız olur.

Aracı bir adımı çalıştırmadan önce, adımın çalıştırılıp çalıştırılmayacağını belirlemek için bu adımın koşulunu denetler. Varsayılan olarak, bir adım yalnızca işin durumu başarılı olduğunda veya sorunlarla başarılı olduğunda çalışır, ancak diğer koşulları ayarlayabilirsiniz.

Birçok iş, başka ne olursa olsun çalıştırılması gereken temizleme adımlarına sahiptir, böylece bir koşul always()belirtebilirler. Temizleme veya diğer adımlar da yalnızca iptalde çalışacak şekilde ayarlanabilir.

Başarılı bir temizleme adımı, işin başarısız olmasına neden olamaz. İşler, başarısızlığa girdikten sonra asla başarıya geri dönemez.

Zaman aşımları ve kesilen bağlantılar

Her işin zaman aşımı vardır. İş belirtilen sürede tamamlanmazsa, sunucu işi iptal eder. Sunucu, aracıya durması için sinyal göndermeye çalışır ve işi iptal edildi olarak işaretler. Aracı tarafında iptal, kalan tüm adımları iptal etmek ve kalan sonuçları karşıya yüklemek anlamına gelir.

İşler, iptal çalışmalarının tamamlanması için iptal zaman aşımı adı verilen bir yetkisiz kullanım süresine sahiptir. ayrıca iptalde bile çalıştırılacak adımları işaretleyebilirsiniz. bir iş zaman aşımının yanı sıra iptal zaman aşımından sonra, aracı işin durdurulduğunu bildirmezse, sunucu işi hata olarak işaretler.

Aracının konak makinesi güç kaybederse veya kapalıysa ya da bir ağ hatası varsa aracı makineleri sunucuya yanıt vermeyi durdurabilir. Aracı, bu koşulları algılamaya yardımcı olmak için sunucuya hala çalıştığını bildirmek için dakikada bir sinyal iletisi gönderir.

Sunucu ardışık beş dakika boyunca sinyal almazsa aracının geri gelmeyeceğini varsayar. İş bir hata olarak işaretlenir ve kullanıcıya işlem hattını yeniden denemesi gerektiğini bildirir.

Azure DevOps CLI aracılığıyla çalıştırmaları yönetme

Azure DevOps CLI'da az pipelines çalıştırmalarını kullanarak işlem hattı çalıştırmalarını yönetebilirsiniz. Başlamak için bkz . Azure DevOps CLI ile çalışmaya başlama. Tam bir komut başvurusu için bkz . Azure DevOps CLI komut başvurusu.

Aşağıdaki örneklerde projenizdeki işlem hattı çalıştırmalarını listelemek, belirli bir çalıştırmayla ilgili ayrıntıları görüntülemek ve işlem hattı çalıştırmaları için etiketleri yönetmek için Azure DevOps CLI'nin nasıl kullanılacağı gösterilmektedir.

Önkoşullar

  • Azure DevOps CLI uzantısının yüklü olduğu Azure CLI, Azure DevOps CLI'yi kullanmaya başlama bölümünde açıklandığı gibi. kullanarak az loginAzure'da oturum açın.
  • kullanılarak az devops configure --defaults organization=<YourOrganizationURL>ayarlanan varsayılan kuruluş.

İşlem hattı çalıştırmalarını listeleme

az pipelines runs list komutuyla projenizdeki işlem hattı çalıştırmalarını listeleyin .

Aşağıdaki komut, durumu tamamlandı ve sonucu başarılı olan ilk üç işlem hattı çalıştırmasını listeler ve sonucu tablo biçiminde döndürür.

az pipelines runs list --status completed --result succeeded --top 3 --output table

Run ID    Number      Status     Result     Pipeline ID    Pipeline Name               Source Branch    Queued Time                 Reason
--------  ----------  ---------  ---------  -------------  --------------------------  ---------------  --------------------------  ------
125       20200124.1  completed  succeeded  12             Githubname.pipelines-java  master           2020-01-23 18:56:10.067588  manual
123       20200123.2  completed  succeeded  12             Githubname.pipelines-java  master           2020-01-23 11:55:56.633450  manual
122       20200123.1  completed  succeeded  12             Githubname.pipelines-java  master           2020-01-23 11:48:05.574742  manual

İşlem hattı çalıştırma ayrıntılarını göster

az pipelines runs show komutuyla projenizdeki bir işlem hattı çalıştırmasının ayrıntılarını gösterin .

Aşağıdaki komut, 123 kimliğine sahip işlem hattı çalıştırmasının ayrıntılarını gösterir, sonuçları tablo biçiminde döndürür ve web tarayıcınızı Azure Pipelines derleme sonuçları sayfasına açar.

az pipelines runs show --id 122 --open --output table

Run ID    Number      Status     Result     Pipeline ID    Pipeline Name               Source Branch    Queued Time                 Reason
--------  ----------  ---------  ---------  -------------  --------------------------  ---------------  --------------------------  --------
123       20200123.2  completed  succeeded  12             Githubname.pipelines-java  master           2020-01-23 11:55:56.633450  manual

İşlem hattı çalıştırmasına etiket ekleme

az pipelines runs tag add komutuyla projenizdeki bir işlem hattı çalıştırmasına etiket ekleyin .

Aşağıdaki komut, YAML etiketini 123 kimliğiyle işlem hattı çalıştırmasına ekler ve sonucu JSON biçiminde döndürür.

az pipelines runs tag add --run-id 123 --tags YAML --output json

[
  "YAML"
]

İşlem hattı çalıştırma etiketlerini listeleme

az pipelines runs tag list komutuyla projenizdeki bir işlem hattı çalıştırmasının etiketlerini listeleyin . Aşağıdaki komut, 123 kimliğine sahip işlem hattı çalıştırmasının etiketlerini listeler ve sonucu tablo biçiminde döndürür.

az pipelines runs tag list --run-id 123 --output table

Tags
------
YAML

İşlem hattı çalıştırmasından etiketi silme

az pipelines runs tag delete komutuyla projenizdeki bir işlem hattı çalıştırmasından etiket silin . Aşağıdaki komut, 123 kimliğine sahip işlem hattı çalıştırmasından YAML etiketini siler.

az pipelines runs tag delete --run-id 123 --tag YAML