Jenkins nedir ? Neden kullanılır ?

Ali Göktaş
Bilişim Hareketi
Published in
2 min readJun 11, 2019

--

Jenkins basit tanım ile, bir yazılım projesinde dinamik olarak gerekli olan yapısal işlemleri otomatize ederek projeyi hızlı, kolaylıkla hata raporlaması ve kolay test edilip hataların fixlenebilmesini sağlayan bir CI(Continous Integration) aracıdır.

Peki nedir bu gereklilikler ?

Şöyle ki ; Projemizi bir versiyon kontrol sistemi(Git) üzerinde bulunduruyoruz. Yazılımın sunucu ortamında çalışması için gerekli olan toollar, eklentiler ve belirli config ayarları gerekiyor. Projenin, koşulması gereken Ui, Unit, Api vb testleri koşuluyor ve stabil olduğundan emin olunarak son kullanıcıya hizmet vermeye devam ediyor. Jenkins bize bu ve daha detaylı süreçler için her bir işlemi üstlenerek ve aralarında bir pipeline kurarak otomatize ediyor.

Aktif olarak hizmet veren ve devamlı geliştirme sağlanan projelerde , yazılımın ve kullanıcının gereksinimleri doğrultusunda devamlı teknik geliştirme söz konusudur. Her bir geliştirme ve deploy süreci kullanıcı nezdine ulaşmadan önce bir test sürecinden geçmesi gerekli ki ürünün stabilizasyonunun devam ettiğinden emin olunmalıdır. Eğer ki yapılan geliştirmeler sonucu derlemede bir sorun yaşanır veya testler pass etmez ise Jenkins’in konsol çıktısı bizi uyaracaktır. Bu gibi fail durumlarda, konfigüre edilmesi durumunda jenkins uyarı olarak mail vb. yollarla notification yolluyor.

Resimdeki yönetim paneli seçenekleriyle eklenti yonetimi , kurulu environment config ayarları ve jenkins tercihleri gibi bir çok detayı buradan yönetebiliyoruz.

Default olarak http://localhost:8080/ portunda çalışır ama config ayarlarından bu değiştirilebilir.

Yeni bir item yaratırken projenin bulunduğu ortamı veya ne tarz bir proje olacağını ve ne için kullanılacağını yukarıdaki ekrandan seçebiliriz.

Proje ekranına girip yapılandırma, konsol çıktılarını kontrol etme konfigürasyon yapma gibi işlemleri yönetebiliriz.

Kısacası Jenkins ‘Bu işlemlerle vakit kaybetmek istemiyorum, projemi kendi repona çek, oradaki istediğim test işlemlerini yap, ayağa kaldır, sonra deploy et. Bu işlemlerde fail eden bir durum olursa beni notification ile bilgilendir. Belirli aralıklarla github’ı da yokla. Bu yoklamalarda sana emrettiğim işlemleri tekrar et.’ gibi isteklerimizi yerine getiriyor. Bu noktada tüm bu işlemleri manuel olarak yaptığımız taktirde hem zaman hem hata riski hem de iş gücü sarfetmiş oluyoruz. Jenkins tüm süreçleri dikkatli ve müthiş bir şekilde basitleştirip otomatikleştiriyor.

Teşekkürler Jenkins! :)

--

--