Jenkins İşlem Hattı Eğitimi: Nasıl Oluşturulur JenkinsDosya (Örnek)

⚡ Akıllı Özet

Jenkins Pipeline, derleme, test ve dağıtım işlerini kod olarak çalışan tek bir sıralı işlem hattına bağlar. JenkinsProjenin yanına kaydedilen dosya, bu diziyi gözden geçirilebilir, sürümlü bir teslimat tanımına dönüştürür.

  • 🔘 Boru Hattı: Birbirine bağlı olaylar grubu; her bir görev bir öncekine bağlıdır.
  • ☑️ JenkinsDosya: Alan diline özgü bir dilde yazılmış ve her bir işlem adımını içeren bir metin dosyası.
  • İki sözdizimi: Bildirimsel yaklaşım sabit bir hiyerarşi sunarken, betik tabanlı yaklaşım ise yapıyı değiştirir. Groovy kontrol.
  • 🧪 Dört terim: Pipeline, node, stage ve step terimleri akışı, makineyi, aşamayı ve görevi adlandırır.
  • Kurulum yolu: Derleme işlem hattı eklentisini yükleyin, bir işlem hattı görünümü ekleyin, işleri zincirleyin ve çalıştırın.
  • 📌 Uygulamalar: Malzeme ile ilgili çalışmaları bir düğüm bloğunda, kurulum gerektirmeyen çalışmaları bir aşamada tutun ve girişleri zaman aşımı sürelerine sarın.

Jenkins işlem hattı, bir kod içindeki kod olarak tanımlanır. Jenkinsfileto

Nedir? Jenkins Boru hattı mı?

Jenkins Pipeline, entegrasyonu ve uygulamayı destekleyen eklentilerin birleşimidir. sürekli teslimat boru hatlarıBu, pipeline DSL aracılığıyla kod olarak basit ve karmaşık teslimat işlem hatları oluşturmak için genişletilebilir bir otomasyon sunucusudur. Bir işlem hattı, bir dizi halinde birbirine bağlı olaylar grubudur.

Sürekli Teslimat Boru Hatları Nedir? Nasıl çalışır?

İçinde Jenkins İşlem hattında, aşağıdaki şemada gösterildiği gibi, her iş veya olay en az bir veya daha fazla olaya bir tür bağımlılığa sahiptir.

Sürekli teslimat hattı, derleme, dağıtım, test ve yayınlama aşamalarını şu şekilde sıralar: Jenkins
Çalışma Jenkins Sürekli Teslimat Boru Hatları

Yukarıdaki resim, sürekli bir dağıtım hattını göstermektedir. JenkinsYapı, dağıtım, test ve yayınlama olarak adlandırılan aşamalardan oluşur. Her aşamanın kendi olayları vardır ve bunlar sırayla çalışır.

Sürekli teslimat hattı, yazılımı sürüm kontrolünden yayına kadar tek bir tekrarlanabilir derleme dizisi aracılığıyla otomatik olarak taşır. test yapmak ve dağıtım aşamaları.

Nedir JenkinsDosya?

Jenkins İşlem hatları, bir metin dosyasında tanımlanabilir. JenkinsDosya, işlem hattını alan özel bir dilde (DSL) kod olarak ifade eder ve işlem hattını çalıştırmak için gereken her adımı içerir.

Kullanmanın yararları JenkinsDosyalar şunlardır:

  • Bir JenkinsFile, her dal için işlem hatları oluşturabilir ve çekme isteklerini yürütebilir.
  • Gözden geçirebilirsiniz. Jenkins işlem hattındaki kod
  • Denetim yapabilirsiniz. Jenkins boru hattı
  • Bu, ardışık düzeniniz için tek kaynaktır ve birden fazla kullanıcı tarafından değiştirilebilir.

Bir işlem hattı şu şekilde tanımlanabilir: Jenkins web arayüzünde veya bir JenkinsDosya kaynak kontrolüne kaydedildi. Minimal bir bildirimsel dosyanın sabit bir yapısı vardır: bir işlem hattı bloğu, bir aracı ve her aşamada bir aşama içeren aşamalar.

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying'
            }
        }
    }
}

Kodu deponun kök dizinine kaydetmek, işlem hattını kodla birlikte günceller.

Bildirimsel ve betik tabanlı işlem hattı sözdizimi karşılaştırması

İki türleri vardır Jenkins Tanımlamanız için kullanılan işlem hattı sözdizimi JenkinsDosya.

  1. bildiren
  2. Yazılı

bildiren

Bildirimsel işlem hattı sözdizimi daha kolay bir yoldur. Önceden tanımlanmış bir hiyerarşiyi izler ve işlem hattı yürütmesinin her yönünü basit bir şekilde kontrol eder.

Yazılı

Yazılı Jenkins işlem hattı şurada çalışır: Jenkins Hafif bir yürütücü aracılığıyla denetleyici, işlem hattını atomik komutlara çevirmek için çok az kaynak kullanır. İkisi de oldukça farklı yazılmıştır, bu nedenle birini seçin. JenkinsDosya.

⚠️ Not: Jenkins şimdi arıyor usta the kontrolör.

Neden kullan Jenkins Boru hattı mı?

Jenkins açık sürekli entegrasyon sunucusu otomatikleştiren yazılım geliştirme süreçleri. Birden fazla oluşturabilirsiniz otomasyon işleri Kullanım senaryolarınızdan yola çıkarak bunları tek bir işlem hattı halinde çalıştırın.

İşte kullanmanız için nedenler Jenkins boru hattı:

  • İşlem hattı kod olarak uygulanır, bu nedenle birden fazla kullanıcı süreci düzenleyebilir ve çalıştırabilir.
  • İşlem hatları sağlamdır: sunucu beklenmedik bir şekilde yeniden başlatılırsa, işlem hattı otomatik olarak devam eder.
  • Bir işlem hattını duraklatabilir ve kullanıcı girdi sağlayana kadar bekletebilirsiniz.
  • İşlem hatları büyük projeleri destekler: birden fazla işi çalıştırın ve hatta işlem hatlarını döngü içinde kullanın.

Jenkins Boru Hattı Concepts

Dört terim her seferinde tekrar eder. JenkinsDosya:

DönemAçıklama
Boru HattıSürekli teslimat için tüm derleme sürecini kapsayan, kod olarak yazılmış bir dizi talimat. Bir işlem hattı ile uygulamayı derleyebilir, test edebilir ve teslim edebilirsiniz.
DüğümÜzerinde bulunduğu makine Jenkins Çalıştırılan kod parçasına düğüm denir. Düğüm bloğu esas olarak betik tabanlı işlem hattı sözdiziminde kullanılır.
AşamaBir aşama bloğu bir dizi adımdan oluşur. Derleme, test ve dağıtım süreçlerinin her biri bir aşamada bir araya gelir ve bu da işlem hattı görünümünün görselleştirdiği şeydir.
adımBelirli bir zamanda belirli bir işlemi gerçekleştiren tek bir görev. Bir işlem hattı, bir dizi adımdan oluşur.

Build Pipeline eklentisini yükleyin. Jenkins

Derleme işlem hattı eklentisi, gelen ve giden işlerin işlem hattı görünümünü oluşturur ve manuel müdahale tetikleyicileri ekler.

Aşağıdaki şekilde kurun:

) 1 Adım Eklentinin ayarları şu adreste bulunabilir: Yönet Jenkins > Eklentileri Yönet, aşağıda gösterilen.

⚠️ Sürüm notu: akım Jenkins Bu ekranı etiketleyen sürümler Yönet Jenkins → EklentilerSekmeler burada açıklandığı gibi davranır.

Eklentileri Yönet sayfasında Jenkins derleme işlem hattı eklentisi ayarlarının bulunduğu yer

Eklentiyi zaten yüklediyseniz, yüklü sekmenin altında gösterilir.

Yüklenen sekmesi Jenkins Eklenti yöneticisi, derleme işlem hattı eklentilerini listeliyor.

) 2 Adım Eklenti henüz yüklenmemişse, Kullanılabilir sekmesi altında görünür.

Eklenti yüklendikten sonra:

Nasıl oluşturulurum Jenkins Boru Hattı

Hesabınıza giriş yaptıktan sonra Jenkins gösterge paneli:

) 1 Adım Ekranınızın sol tarafındaki "+" düğmesine tıklayın. Jenkins İşlem hattı oluşturmak için kontrol paneli.

Artı düğmesi Jenkins Yeni bir görünüm eklemek için kullanılan kontrol paneli

) 2 Adım Yeni görünüm iletişim kutusunu doldurun:

  1. İşlem hattı görünümüne bir isim verin. Biz buna "GuruBu demo için "99 Pipeline" kullanıldı.
  2. Seçenekler altında "İşlem hattı görünümü oluştur" seçeneğini belirleyin.
  3. Aşağıda gösterildiği gibi Tamam'a tıklayın.

İşlem hattı görünüm adı girilmiş ve "İşlem hattı görünümü oluştur" seçeneği işaretlenmiş yeni bir görünüm iletişim kutusu açılmıştır.

) 3 Adım Sonraki sayfada daha fazla yapılandırma detayı isteniyor. Varsayılan ayarları kabul edin ve ayarlar altında ilk işi seçtiğinizden emin olun.

Uygula'ya ve ardından Tamam'a tıklayın.

Varsayılan ayarlarla ve ilk iş seçili olarak derleme işlem hattı görünümü yapılandırma sayfası.

Ardından, öğenizin örnek işlem hattı görünümü görüntülenir:

Örnek Jenkins Oluşturulan derleme işlem hattı görünümü Guru99 Boru hattı öğesi

Pipeline derlemesini çalıştırma

) 1 Adım Öncelikle işlerinizi zincirleyin: ilk işinizi açın ve yapılandır'a tıklayın.

İlk bağlantı üzerinde yapılandırma yapın. Jenkins İşler zincirleme çalıştırmaya başlamak için kullanılan iş.

) 2 Adım Şimdi, "Derleme Tetikleyicileri" altında, "Diğer projeler derlendikten sonra derle" seçeneğini işaretleyin.

"Derleme Tetikleyicileri" bölümünde "Diğer projeler derlendikten sonra derle" seçeneği işaretlenmiş olmalıdır.

Artık tüm işleriniz için bir zincir mevcut.

) 3 Adım Eğer henüz yüklemediyseniz, Build Pipeline görünüm eklentisini yükleyin.

) 4 Adım Üzerinde Jenkins Kontrol panelinde, "+" düğmesiyle bir görünüm oluşturun, "Yapı İşlem Hattı Görünümü" seçeneğini seçin ve Tamam'a tıklayın.

Yeni görünüm iletişim kutusu, "Yapı İşlem Hattı Görünümü" seçeneği seçili olarak görüntülenir.

) 5 Adım İşlem Hattı görünümü yapılandırması altında, İşlem Hattı Akışı'nı bulun.

İşlem hattı akışı altında, çalıştırılacak ilk işi seçin; bu iş, 1. ve 2. adımlarda diğer işlere zincirlenmiş olan iş olacaktır.

İşlem Hattı Akışı ayarları ile Guru99. Proje 1 ilk iş olarak seçildi.

Guru99. Proje 1 burada başlangıç ​​işi olarak seçiliyor, bu nedenle zincirleme işler sırayla çalıştırılıyor.

Boru hattı çalışırken, kırmızı ve yeşil semboller durumunu gösterir: kırmızı başarısızlığı, yeşil ise başarıyı temsil eder.

Bu örnekte düğme yeşil renkte, yani işlem hattı başarılı oldu.

Başarılı olduğunu gösteren yeşil durum düğmesi Jenkins işlem hattı çalıştırması

Koşu Jenkins boru hattı

Çalıştırmak için Çalıştır'a tıklayın. Jenkins İşlem hattı. Şöyle bir şey olacak:

Çalıştır düğmesi Jenkins derleme işlem hattı görünümü

Yukarıdaki örnek, basit bir "helloworld.java" programı oluşturmaktadır. Gerçek projeler, aşağıda daha ayrıntılı olarak gösterildiği gibi, çok daha karmaşık işlem hatlarını birbirine bağlar.

Tamamlandı Jenkins İşlem hattının her bir zincirleme işini sırayla gösteren derleme işlem hattı görünümü.

⚠️ Sürüm notu: Derleme Hattı görünümü eklentisi, zincirleme serbest stil işleri görselleştirmenin eski yöntemidir; mevcut uygulama aynı akışı şu şekilde tanımlar: JenkinsDosya. Mavi Ocean Artık geliştirilmiyor.

En İyi Uygulamaları Kullanarak Jenkins Boru Hattı

Bir iş akışının sürdürülebilirliğini sağlayan yedi alışkanlık:

  • Orijinalini kullanın. Jenkins Boru Hattı
  • İşlem hattınızı kod olarak geliştirin
  • İşlem hattınızdaki kurulum dışı herhangi bir çalışma, bir aşama bloğu içinde gerçekleşmelidir.
  • Bir boru hattındaki herhangi bir maddi çalışma, bir düğüm bloğu içinde gerçekleştirilmelidir.
  • Düğüm bloğu içinde giriş kullanmayın.
  • Ortam değişkenlerini asla env global değişkeniyle ayarlamayın
  • Girişlerinizi zaman aşımı süresine sarın

SSS

Bir depoyu tarar, bir veriyi taşıyan her dalı bulur. JenkinsDosya her biri için bir iş oluşturur. Şube davranışı, o dosyadaki BRANCH_NAME değişkeninden gelir.

Onları şurada saklayın: Jenkins Kimlik bilgileri, bir ortam bloğunda credentials() yardımcı fonksiyonu ile saklanır ve okunur. Değer, çalışma zamanında enjekte edilir ve günlükte gizlenir, böylece dosyada hiçbir parola bulunmaz.

Aşamalar bittikten sonra, sonuç ne olursa olsun çalışır. Her zaman, başarı, başarısızlık ve kararsızlık gibi koşullar, tek bir dosyanın raporları yayınlamasına, arşiv belgelerini oluşturmasına ve ekibi tekrara gerek kalmadan bilgilendirmesine olanak tanır.

Evet. Bir aşama içindeki paralel bir blok, dallarını aynı anda çalıştırır; bu da tarayıcılar arasında bölünmüş test paketleri için uygundur. Her dalın bir aracıya ihtiyacı vardır, bu nedenle çalışma süresi yalnızca yürütücüler boş olduğunda azalır.

Bunu bildirimsel linter uç noktasına gönderin veya daha önceki bir çalıştırmada Replay'i açın, betiği düzenleyin ve depoya dokunmadan çalıştırın. Her iki yöntem de sözdizimi hatalarını erken aşamada yakalar.

Bir yapay zeka asistanı uzun konsol günlüklerini okuyabilir, tekrarlanan yığınları gruplandırabilir. tracHatanın başladığı aşamayı belirtin ve adlandırın. Ayrıca aralıklı testleri de işaretler. Her öneriyi ham günlük kaydıyla karşılaştırarak doğrulayın.

Evet. Yardımcı pilot Bir yorumdan aşamaları adlandırarak bildirimsel bir iskelet taslağı oluşturur ve ödeme işlemi ve kabuk komutları gibi adımları tamamlar. RevÖnerilerin sıklıkla yanlış tahmin ettiği aracı etiketlerini, kimlik bilgilerini ve zaman aşımı sürelerini görüntüleyin.

Aynı blok üç veya daha fazla kez göründüğünde JenkinsDosyalar. Paylaşımlı bir kütüphane, bu mantığı tek bir sürümlü depoda tutar; böylece bir düzeltme her projeye ulaşır ve her dosya yalnızca kendi aşamalarını korur.

Bu yazıyı şu şekilde özetleyin: