Jenkins Nedir ve Neden Kullanılır?
Hadi gelin, yazılım geliştirme dünyasında sıkça karşılaştığınız ama bazen iç yüzünü merak ettiğiniz Jenkins’i keşfe çıkalım. Jenkins, açık kaynaklı bir otomasyon sunucusudur ve yazılım geliştirme süreçlerini hızlandırmak için kullanılır. Özellikle yazılımın derlenmesi, test edilmesi ve dağıtılması gibi tekrarlanan işlemleri otomatikleştirerek yazılım geliştiricilerinin işini kolaylaştırır. CI/CD (Continuous Integration/Continuous Delivery) süreçlerini mükemmel bir şekilde yönetmek için kullanılan en popüler araçlardan biridir.
DevOps kültüründe, Jenkins neredeyse her yazılım ekibinin vazgeçilmezi olmuştur. Çünkü bir kere kurduktan sonra her şeyin otomatik hale gelmesi, ekiplerin daha verimli çalışmasını sağlar.
Jenkins Kurulumu
Jenkins’i kurmak aslında düşündüğünüz kadar zor değil. Hadi adım adım nasıl kurulacağını görelim.
1. Java'yı Kurun
Jenkins, Java tabanlı bir uygulama olduğu için öncelikle sisteminize Java kurmanız gerekir. Eğer Java kurulu değilse, buradan en güncel sürümünü indirip kurabilirsiniz.
2. Jenkins İndir
Jenkins'i indirmenin iki yolu vardır. Birincisi, Jenkins’in resmi sitesinden Windows, macOS ve Linux için uygun versiyonları indirmektir.
Jenkins İndir
3. Kurulum
İndirilen dosya ile kurulum işlemini başlatabilirsiniz. Eğer Windows kullanıyorsanız, kurulum sihirbazını takip edin. MacOS veya Linux içinse terminal üzerinden kurulum yapabilirsiniz.
4. Jenkins'i Başlat
Kurulum tamamlandığında, Jenkins'i başlatmak için terminal ya da komut satırında şu komutu girin:
java -jar jenkins.war Bu komut, Jenkins’i başlatacaktır. Şimdi tarayıcınızda http://localhost:8080 adresini ziyaret ederek Jenkins arayüzüne ulaşabilirsiniz.
5. Jenkins Kurulumunu Tamamlama
İlk kez başlattığınızda, Jenkins size bir “Unlock Jenkins” ekranı gösterecek. Buradaki şifreyi almak için komut satırında şu komutu kullanabilirsiniz:
cat /var/lib/jenkins/secrets/initialAdminPassword Bu şifreyi girdikten sonra, Jenkins arayüzüne giriş yapabilirsiniz.
Jenkins Pipeline Nedir ve Nasıl Yazılır?
Şimdi işin eğlenceli kısmına geliyoruz! Jenkins’i kurduk ve çalıştırdık. Şimdi sırada bir Jenkins pipeline yazmak var. Jenkins pipeline, bir yazılım geliştirme sürecinde, kaynak kodun otomatik olarak alınmasından, derlenmesine, test edilmesine ve dağıtılmasına kadar olan tüm adımları tanımlar.
Pipeline bir çeşit talimatlar dizisidir. Şimdi, basit bir pipeline oluşturalım.
Basit Bir Pipeline Yazma
Jenkins’in temel özelliklerinden biri, Declarative Pipeline ve Scripted Pipeline olmak üzere iki tür pipeline desteği sunmasıdır. Biz burada daha kullanıcı dostu olan declarative pipeline yazacağız.
Adım 1: Yeni bir Pipeline Projesi Oluşturma
Jenkins arayüzünde sol menüden New Item'a tıklayın, ardından Pipeline'ı seçin ve projenize bir isim verin.
Adım 2: Pipeline Scriptini Yazma
Aşağıda basit bir pipeline örneği göreceksiniz. Bu script, kaynak kodun git reposundan alınmasını, derlenmesini ve test edilmesini sağlar.
pipeline {
agent any
stages {
stage('Checkout') {
steps {
// Git reposundan kodu al
git 'https://github.com/kullanici_adi/proje_reposu.git'
}
}
stage('Build') {
steps {
// Projeyi derle
sh 'mvn clean install'
}
}
stage('Test') {
steps {
// Testleri çalıştır
sh 'mvn test'
}
}
stage('Deploy') {
steps {
// Dağıtım işlemi
sh 'mvn deploy'
}
}
}
}
Adım 3: Pipeline'ı Çalıştırma
Yukarıdaki scripti Pipeline sekmesine yapıştırın ve kaydedin. Ardından Build Now butonuna tıklayarak pipeline'ınızı çalıştırabilirsiniz. Jenkins, sırasıyla kodu çekip, derleyip, test edip ve son olarak dağıtım yapacaktır.
Jenkins Pipeline İpuçları
Jenkins ile çalışırken işinizi kolaylaştıracak birkaç ipucu:
1. Zamanlayıcılar kullanın: Pipeline’ları belirli zamanlarda çalışacak şekilde zamanlayabilirsiniz. Örneğin, her gün gece 2’de kodları test edip dağıtmak isteyebilirsiniz.
2. Ortam değişkenleri: Pipeline’ınıza özel değişkenler ekleyerek yapılandırmayı özelleştirebilirsiniz.
3. Parametreli Pipeline’lar: Kullanıcıdan parametre alarak pipeline’ı daha dinamik hale getirebilirsiniz.
Artık Jenkins kurulumunun ve pipeline yazımının temellerine hakim oldunuz. Süreç otomasyonunu tam anlamıyla kullanarak yazılım geliştirme sürecini hızlandırabilir, hatasız ve düzenli bir şekilde kodları sürekli entegre edebilirsiniz.