Jenkins Shared Library: Daha Yakından Bir Bakış [2022]

Yayınlanan: 2021-01-02

Çağdaş uygulamaların ayrı ayrı dağıtılabilen bileşenlere ayrıldığı bir mikro hizmetler çağında yaşıyoruz . Jenkins'in mikro servisleri dağıtmak için önde gelen orijinal CI / CD araçları arasında yerini aldığını söyleyebiliriz. Monolitik uygulamalarla karşılaştırıldığında, bireysel mikro hizmetleri dağıtmak için birçok işlem hattı vardır.

Hortumu, tüm CI/CD sürecini kodlamak için bir kod olarak kullanabilirsiniz. Uygulama geliştirmedeki gibi davranın. İşlem hattı kodunuzu yayınlayabilir ve uygulamanızı dağıtmak için kullanmadan önce tüm test düzeylerini çalıştırabilirsiniz.

İçindekiler

Jenkins Paylaşılan Kitaplığı nedir?

Sembol olarak CI/CD dediğimizde modülerliğe ve yeniden kullanıma ihtiyacımız var. DRY ilkesine uymalısınız. Jenkins'in paylaşılan Kütüphanesinin faydalı olduğu yer burasıdır.

Jenkins Shared Library , sürüm kontrol sistemleri için standart bir boru kodu ekleme fikridir ve yalnızca ona atıfta bulunularak herhangi bir sayıda boru üzerinde kullanılabilir. Birden çok ekip, ardışık düzenleri için aynı dizini kullanabilir.

Popüler programlama dizinleriyle karşılaştırabilirsiniz. Programlama, kodu içe aktarırken herkesin kullanabileceği ayrı bir kılavuz oluşturur.

Örneğin, Java'dan mikro hizmetler için on borunuz varsa, eski oluşturma prosedürü on borunun tümü için tekrarlanır. Ayrıca yeni servislerin eklenmesi ile boru kodu kopyalanıp yapıştırılır. Eski bir inşaat aşamasında bazı parametreleri değiştirmek isterseniz, tüm borularda manuel olarak ayarlamanız gerekir.

Aynı senaryoda, eski binalar için ortak bir kütüphane oluşturacaksınız. Tüm borular için tek yapmanız gereken eski bina kodu kitaplığına başvurmak. Gelecekte herhangi bir eski değişiklik olursa, güncellemeniz gereken tek şey paylaşılan kitaplık simgesidir.

Okuyun: İlginç Jenkins Projesi Fikirleri ve Konuları

Paylaşılan kitaplıkları kullanmaya başlayın

Paylaşılan bir dizin, harika dosyalardan oluşan bir koleksiyondur (DSL + Groovy). Tüm harika dosyalar git deposunda olmalıdır. Bu örnek, Github'ı git deposu olarak kullanır. https://github.com/devopscube/jenkins-shared-library. Paylaşılan kitaplık altyapısını elde etmek için bu havuzu çoğaltabilirsiniz.

Paylaşılan kitaplık veritabanı aşağıdaki birim yapılarını içerir:

Jenkins Ortak Kütüphanesi

| ____ değişken

| ____ kaynak

| ____ Kaynaklar

Vars

İşlem hattından arayabileceğiniz tüm WCL kodunu içerir. .groovy uzantılı tüm dizin dosyalarını içerir. .txt dosyaları, paylaşılan kitaplık kodunun belgelenmesi için de desteklenir. Örneğin, maven-build adında bir dosyanız varsa . Groovy, o zaman maven-groovy.txt adında bir yardım dosyası alacaksınız. Bu dosyada paylaşılan bir dizinin özelliklerini işaretlemek için yardım belgeleri yazabilirsiniz. Yardım dosyaları <your-jenkins-url> / Pipeline Syntax / Global sayfasından görüntülenebilir.

kaynak

Standart bir Java kaynak dizinidir. Tüm metin derlendikten sonra sınıf yoluna eklenecektir. Burada paylaşılan kitaplık kodunu genişletmek için inanılmaz derecede havalı bir kod ekleyebilirsiniz. Mevcut Jenkins kategorilerini ve uzantılarını içe aktarmak için İçe Aktarma Bildirimini de kullanabilirsiniz.

Harika DSL donanımının belirli işlevleri yerine getirmek için yeterince esnek olmadığı senaryolar vardır. Bu durumda, src'ye özel oluk işlevleri yazabilir ve bunları paylaşılan kitaplık kodunda okuyabilirsiniz.

Kaynaklar

Hortum için gerekli tüm gereksiz dosyaları bu klasörde yönetebilirsiniz. Örnek olarak, inşaat sırasında API çağrıları yapmak için genel bir JSON şablonuna ihtiyacınız olabilir. Bu JSON şablonunu bir kaynak klasörüne kaydedebilir ve onu LibraryResource işlevi aracılığıyla paylaşılan bir kitaplıkta çağırabilirsiniz.

Okumalısınız: Hindistan'da Jenkins Maaşı

Paylaşılan Küresel Kitaplık

Kullanım durumunuza bağlı olarak, paylaşılan bir dizin oluşturabileceğiniz birkaç yer vardır. Jenkins Management » Sistem Konfigürasyonu» Global Pipe Library. İstediğiniz sayıda dizini istediğiniz gibi yapılandırabilirsiniz.

Bu kitaplıklar evrensel olarak mevcuttur, böylece sisteminizdeki her işlem hattı bu kitaplıklarda uygulanan işlevleri kullanabilir.

Bu kütüphaneler “güvenilir” olarak kabul edilir. Java'da, Groovy'de, Jenkins'in dahili API'sinde, Jenkins uzantısında veya bir üçüncü taraf dizininde herhangi bir yöntemi gerçekleştirebilirsiniz. Güvenli olmayan API'leri herhangi bir boru hattından güvenle kullanılabilecek üst düzey zarflara katlayan kitaplıkları kesin olarak belirlemenize olanak tanır.

Bu SCM veritabanına komisyon ödeyebilen herkesin Jenkins'e sınırsız erişimi olduğunu lütfen unutmayın. Bu dizinleri oluşturmak için Total / RunScripts iznine ihtiyacınız var (bu izin genellikle Jenkins yöneticilerine verilir).

Dünyanın En İyi Üniversitelerinden Yazılım Mühendisliği Kurslarına Kaydolun. Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Klasör düzeyinde paylaşılan kitaplık

Oluşturulan tüm klasörler, paylaşılan dizinlere bağlanabilir. Bu mekanizma, bir birim veya alt klasör içindeki tüm borular için belirli bir dizin aralığı ayarlamanıza olanak tanır.

Klasör tabanlı dizinler "güvenilir" olarak kabul edilmez. Oluklu sandbox içinde normal bir boru gibi çalışır.

Otomatik paylaşılan kitaplık

Diğer eklentiler, hareket halindeyken kitaplığı tanımlamanın bir yolunu ekleyebilir. Örneğin, "GitHub Kuruluş Klasörü", GitHub Şube Kaynağında sağlanan bir kaynak eklentidir. Komut dosyalarının github.com/orgname/reponame eksi herhangi bir ek yapılandırma gibi güvenilmeyen kitaplıkları kullanmasına izin veren bir bileşen sağlar. Bu durumda, belirtilen GitHub deposu, anonim ayarlar kullanılarak ana daldan yüklenecektir.

Kitaplıktaki değişiklikleri kontrol etmek için

Güvenilmeyen bir dizine sahip bir derlemede bir hata fark ederseniz, yeniden oynatma bağlantısını tıklayın ve ortaya çıkan sürümün beklendiği gibi çalışıp çalışmadığını görmek için bir veya daha fazla kaynak dosyayı düzenleyin. Sonuçlardan memnun kaldığınızda, Yayın Durumu sayfasındaki fark bağlantısına tıklayın ve farkı kitaplığınıza ve taahhüt havuzunuza uygulayın.

(Kütüphanenin talep edilen sürümü yer imi gibi statik bir sürüm değil de bir dal olsa bile, yeniden etkinleştirilen sürüm orijinal sürümle aynı sürümü kullanır. Kütüphane kaynaklarını geri çekemezsiniz.)

Şu anda, size güvenilir yeniden oynatma kitaplıkları sağlamaz. Yeniden Oynatma sırasında kaynak dosyalarının değiştirilmesi şu anda desteklenmemektedir.

Ayrıca Okuyun: Jenkins Röportaj Soruları ve Cevapları

Çözüm

İşte hatırlamanız gereken önemli şeylerden bazıları:

  • Adımları veya özel işlevleri yazmak için Groovy'yi kullanmanız gerekecek.
  • İşlem hatlarından çağırabileceğiniz işlem hattı adımlarını yazmaya ihtiyaç vardır.
  • Özel adımınızın adını içerecek olan havuzun vars dizininde bir dosya oluşturmanız gerekir.
  • Def call yöntemi, adımınızdaki parametreler tarafından uygulanmalıdır.
  • Ortak Groovy kodu yazmaya ihtiyaç varsa, bunu src'ye ekleyebilirsiniz.
  • Ayrıca, bir yapılandırma sistemi ekranı kullanarak Jenkins'te paylaşılan bir kitaplığı entegre edebilirsiniz.

Tam yığın geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500'den fazla saat zorlu eğitim, 9'dan fazla proje ve ödev sunan Tam Yığın Yazılım Geliştirmede Yönetici PG Programına göz atın. , IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.

Yazılım Geliştirme Kursu | Java, C, Python ve daha fazlasında uzmanlaşın‎

Yazılım Mühendisliği Yüksek Lisans Programına Hemen Başvur