Skip to main content
search

Jenkins, Sürekli Entegrasyon (CI: Continuous Integration) yöntemi için kullanılan java ile yazılmış açık kaynak kodlu bir otomasyon sunucusudur. Yazılım geliştirme süreçlerini otomatize etmemize yarar. Jenkins, belirli bir sunucuda ve portta çalışır, belirlenen kaynaktan projeye ulaşır ve istenen işlemleri gerçekleştirir. Sonuçlarını belirlenen kişilere iletir. Bu sayede projemiz sürekli test edildiği için hatalar hızlıca tespit edilir ve çalışır bir vaziyette tutulur. Jenkins, manuel olarak yapılan build, test ve deploy gibi işlemleri uygular ve bu süreçte yaşanabilecek tüm aksaklık ve iletişim eksikliğini en aza indirir.

Örnek olarak; Jenkins yazılım geliştirme sürecinde belirlenen kaynaktan projeye ulaşır ve belirlenen şartlarda çalışıp projeyi derler. Derleme başarılı ise testleri çalıştırır. Bu iki aşamada herhangi bir sorunla karşılaşmazsa 3. aşama olan deploy işlemini gerçekleştirir. Bu durum Sürekli Teslimat (CD: Continious Delivery) işlemi olarak nitelendirilebilir. Sürekli teslimatta amaç projeyi sürekli güncel ve çalışır bir vaziyette tutmak ve canlı ortama benzer bir ortama aktarmaktır. Jenkins eğer build veya test aşamasında herhangi bir hata ile karşılaşırsa deploy işlemini gerçekleştirmez ve geliştiriciyi bilgilendirir. Bu süreç sürekli tekrar eder. Jenkins bunlara ek olarak statik analiz, versiyon kontrol sistemi, dağıtım gibi birçok geliştirme sürecini entegre eder.

Jenkins kurulum sürecine geçmeden önce, sizin için hazırladığımız Jenkins Cheat Sheet’e buradan hızlıca ulaşabilirsiniz

 

Jenkins Nedir?

Jenkins Kavramları 

Job: Bir jenkins projesidir. Otomatize etmek istediğimiz işleri burada belirleriz. Örneğin, job config üzerinden şu repository’i çek, şu şartlarda build et, şu testleri çalıştır ve belirlenen kişilere mail at gibi işlemleri burada belirleriz.

Node: job’un üzerinde çalıştığı sunucuyu ifade eder. Testleri başka bir bilgisayarda koşmak istediğimizde node oluşturur ve bağlantı için gerekli şartları gerçekleştirdikten sonra node’da testlerimizi koşabiliriz.

Plugin (eklenti): Jenkins saf haliyle yüklenir, ihtiyacımıza göre plugin yükler ve bunları kullanılırız. Örneğin, Job çalıştıktan sonra mail atması için “Email Extension” eklentisini yüklemeli ve post-build adımında kullanmalıyız.

Pipeline: işlerin ardışık bir sırada yapılması, bir işlemin çıktısının sonraki gelen işlemin girdisi olması anlamına gelir. Ör: Bir test adımının başarısız olması durumunda diğer bir testin hiç başlamaması gibi.

Jenkins Nasıl Çalışır?

Jenkins, projemizi Git’ten çeker, build eder, yazılan test adımlarını belirlenen node’larda gerçekleştirir, sonuçlarını belirlenen kişilere iletir. Bunu sürekli hale getirir ve DevOps kültürünü oluşturur. Jenkins hakkında genel bilgileri aktardık, şimdi ise kurulum ve kullanım aşamalarını inceleyelim:

Jenkins Kurulum Aşamaları

1) Jenkins’i resmi sitesinden indirmek için karşınıza çıkan aşağıdaki ekranda download‘a basılır. Platforma uygun versiyon seçilerek indirme işlemi ne başlanır. (Windows üzerinden anlatılmıştır.)

Jenkins Kurulum Aşamaları

 

2) Karşınıza çıkacak aşağıdaki ekranda uygun ortam seçilerek indirme işlemi tamamlanır. Sol taraf stabil, sağ taraf ise son sürümdür.

Jenkins İndirme

3) Yükleme işlemleri yapılır. Install > Next > Next > Finish

Jenkins Setup

 

Kurulum tamamlandıktan sonra localhost:8080 portu açılır ve Jenkins yapılandırılır. Bunun için biraz beklemeliyiz.

Jenkins Setup2

 

4) Jenkins’in kilidini açmak için kırmızı renk ile verilen klasöre gidilip “initialAdminPassword” adlı dosyanın içinde bulunan şifre aşağıdaki alana kopyalanır. Ardından continue ile devam edilir.

Jenkins Kilit açma

 

5) Yeni user oluşturulabilir veya admin olarak devam edilebilir.

Jenkins User oluşturma

 

İsteğe göre plugin yüklenebilir veya önerilen pluginler ile devam edilebilir.

Jenkins customization

 

Bu işlemin ardından Jenkins ana sayfası karşınıza çıkacaktır;

Jenkins Ana sayfa

Kurulum işlemlerini tamamladık. Bir sonraki yazımızda plug-inler nasıl yüklenir, Node ve Node’da yapılacak işlemler nedir konusuna değineceğiz.

 

Fırat Çelik

Test Otomasyon Mühendisi

Close Menu