Bugün sana Jenkins’in ne olduğunu, nasıl kurulduğunu ve nasıl bir Pipeline yazacağımızı anlatacağım. Bu yazının sonunda Jenkins’i kendi projende kullanabilecek kadar hakim olacaksın.
Jenkins Nedir?
Jenkins, CI/CD süreçlerini yönetmek için mükemmel bir araçtır. Kodunu sürekli olarak entegre etmek (CI) ve her an dağıtıma hazır hale getirmek (CD) isteyen yazılım ekiplerinin vazgeçilmezi olmuştur.
Jenkins Kurulumu
# Adım 1: Java’nın Yüklenmesi
sudo apt update
sudo apt install openjdk-11-jdkJava’nın doğru yüklendiğinden emin olmak için aşağıdaki komutu çalıştırabilirsin:
java -version# Adım 2: Jenkins’i Yüklemek
wget -q -O - https://pkg.jenkins.io/keys/jenkins.io.key | sudo tee /etc/apt/trusted.gpg.d/jenkins.asc
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable/ / > /etc/apt/sources.list.d/jenkins.list'
sudo apt updateŞimdi, Jenkins’i yükleyebiliriz:
sudo apt install jenkinsKurulum tamamlandıktan sonra Jenkins’i başlatabilirsin:
sudo systemctl start jenkins# Adım 3: Jenkins’i Başlatmak ve İlk Yapılandırma
sudo cat /var/lib/jenkins/secrets/initialAdminPasswordBu anahtarı kopyalayarak web arayüzüne yapıştır ve Jenkins’i kurulum işlemlerine devam et.
Jenkins Pipeline Nedir?
Pipeline’ı yazarken, Declarative Pipeline ve Scripted Pipeline olmak üzere iki farklı yaklaşım vardır. Bugün, en yaygın ve kullanımı kolay olan Declarative Pipeline yöntemini ele alacağız.
Jenkins Pipeline Yazmak
# Adım 1: Basit Bir Pipeline Oluştur
İşte basit bir Declarative Pipeline örneği:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building the project...'
sh 'echo "Compiling code..."'
}
}
stage('Test') {
steps {
echo 'Running tests...'
sh 'echo "Running unit tests..."'
}
}
stage('Deploy') {
steps {
echo 'Deploying the application...'
sh 'echo "Deploying to production..."'
}
}
}
}# Adım 2: Pipeline’ı Çalıştırmak
# Adım 3: Pipeline’a Ekstra Özellikler Eklemek
İşte, örnek bir Branch Kontrolü eklemek için kullanabileceğin bir kod:
pipeline {
agent any
stages {
stage('Build') {
when {
branch 'main'
}
steps {
echo 'Building the main branch...'
sh 'echo "Building application..."'
}
}
}
}Bu kod, sadece main branch’inde çalışacaktır.