Jenkins CI ile GitLab Entegrasyonu Sağlamak

MEHMET ARİF EMRE ŞEN
Yazilim VIP
Published in
4 min readSep 18, 2018

Bu makalemde Jenkins CI ile GitLab Entegrasyonu Sağlamak için gerekli adımları anlatıyor olacağım. Bütün adımları uyguladıktan sonra Jenkins CI ile GitLab Entegrasyonu başarılı bir şekilde sağlanmış olacak. Yapıcak olduğumuz entegrasyon iki kısımda da bir takım ayarlar gerektirmekte. Bu yüzden yazımı iki ana başlığa ayırıyorum ve GitLab tarafındaki ayarlar ile başlıyorum.

GitLab Konfigurasyonu

GitLab tarafında ihtiyacımız olan şeyleri aşağıdaki gibi listeleyebiliriz:

  1. GitLab tarafından Jenkins ile bağlantı sağlayabilmek için bir Access Token
  2. Bir Git Repository’si
  3. Bu Repository’ye erişim izni olan bir kullanıcı
  4. Yine Bu Repository için tanımlı bir WebHook (Bu adımı Jenkins Tarafında bir takım ayarlamlar yaptıktan sonra uygulayacağız)

Öncelikle bir Access Token oluşturulacak. Eğer daha önce bir Access Token oluşturmadıysanız aşağıdaki linke yönlenebilirsiniz. Bu örnekte Scope olarak api yetkilendirmesini seçiyoruz.

Link: https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html

Bir sonraki adımda basit bir Git Repository’si oluşuturuyoruz. Ardından Yapmamız gereken işlem bir WebHook oluşturmak .WebHook’un görevini aşağıdak görselle özetleyebiliriz.

Aşağıdaki görselde Webhook ile hangi durumlarda bağlantı kurulacağını görebilirsiniz. URL kısmına Jenkins tarafından bize verilecek. Bu aşamada bu kısmı atlıyoruz. Daha sonra bu sayfaya tekrar dönceğiz. Örnek olarak yapacağımız senaryoda bir push işlemi gerçekleştiğinde Jenkins’in almasını istediğimiz için burda Push events kısmını seçiyoruz. Elbette siz orda gördüğünüz diğer durumlarıda deneyebilirsiniz. Örneğin Merge Request Events bir merge request yapıldığında Jenkins tetiklenecek vs.

Jenkins CI ile GitLab Entegrasyonu

Jenkins tarafında ihtiyacımız olan şeyleri aşağıdaki gibi listeleyebiliriz:

  • GitLab bağlantısı için GitLab eklentisi
  • Jenkins üzerinde tanımlı bir Maven Job
  • Tanımlanan Mave Job ile GitLab repository’sinin bağlantı ayarları

Jenkins Uzantılarını Kurmak

Jenkins’e GitLab Sunucusunu Tanıtmak

Manage Jenkins > Configure sayfasını açıyoruz. GitLab isimli kısma geliyoruz ve GitLab sunusu bilgilerimizi giriyoruz. GitLab Host URL bilgisi ve API-Token (Gitlab Üzerinde Oluşturduğumuz Perosnal Access Token’ı burda kullanıyoruz) girmemiz isteniyor.

Aşağıdaki görselde görebileceğiniz üzere Kind kısmından GitLab API Token’ı seçiyourz ve API Token isimli alana GitLab tarafında oluşturduğumuz token’ı giriyoruz.

Jenkins Maven Job Oluşturmak

Jenkins Maven Job oluşturmak için konu ile ilgili makalemizi okuyabilirsiniz.

Link: ttp://yazilim.vip/2018/09/17/jenkins-maven-job-ile-projeleri-derlemek/

Jenkins Job ve GitLab Repository Bağlantısı

Yeni bir Jenkins Maven Job oluşturduktan sonra bir sonraki adıma geçebiliriz. Şimdi yapmamız gereken şey GitLab repository’miz ile az önce oluşturmuş olduğumuz Jenkins Maven Job’u bağlamak.

Repository Ayarları

Job’u açıyoruz ve sol menüde Configure isimli linke tıkılıyoruz. Source Code Management kısmına geliyoruz ve bilgilerimizi giriyoruz. Bizden istenen : repository adresi ve kullanıcı adı şifre bilgileri.

Build Trigger Ayarı

Ardından yine aynı sayfada Build Trigger bölümüne geliyoruz ve Build when a change Pushed ile başlayan seçeneği işaretliyoruz. Burda GitLab üzerindeki değişikliklerde build işleminin otomatik olarak tetikleneceğini söylemiş oluyoruz. Seçeneklerde görüldüğü gibi Push, Merge Accept vb. bir kaç farklı işlem gerçekleşmesi durumunda Jenkins otomatik olarak bir build başlatabiliyor.

GitLab Webhook Ayarı

Eğer GitLab ayarları kısmını hatırlarsanız Webhook tanımlarken bu kısma daha sonra dönüceğimizi söylemiştik. Yukarıdaki görselde görüldüğü üzere GitLab webhook URL isimli bir bölüm yer alıyor. Bu aşamada tekrar GitLab’a geri dönüyoruz ve bir Webhook tanımlıyoruz. URL kısmında bir önceki görselde Jenkins tarafından bize verilen adresi giriyoruz. Webhook’un tetiklenmesini istediğimiz durumları seçiyoruz. Bizim senaryomuzda git repository’sine bir push gerçekleştiğinde build işleminin tetiklenmesini istiyoruz bu yüzden orda Push Events kısmını seçiyoruz.

GitLab Ayarlarının Test Edilmesi

Bu ayarları yaptıktan sonra GitLab üzerindeki Repository’iye bir push işlemi yapıp işlemi test edelim. Build işleminin otomatik olarak tetiklendiğini görüceksiniz.

Eğer Build işleminin loglarını incelersek Jenkins’in GitLab’taki master branch’ındaki son sürümü aldığını, sonra Maven ile bu projeyi derlediğini görebilirsiniz.

--

--