Ubuntu 22.04 Jenkins CI Pipeline Kurulumu (GitHub & Docker)
Ubuntu 22.04 Üzerinde Jenkins ile Sürekli Entegrasyon (CI) Pipeline Kurulumu
Yazılım geliştirmede hız ve güven kritik.
Bu rehberde,
her kod gönderiminde otomatik test çalışan modern bir CI pipeline oluşturacağız.
Testler
Sistem temiz kalır, sürpriz hata çıkmaz. Mis 👌
Bu Rehberde Ne Öğreneceksiniz?
- Jenkins’i Docker çalıştırabilecek şekilde yapılandırmayı
- GitHub ile Jenkins arasında güvenli Token & Webhook bağlantısı kurmayı
- Jenkinsfile ile kod tabanlı CI senaryosu yazmayı
- Push ile otomatik tetiklenen CI hattını devreye almayı
Teknik Özet
Konu: Jenkins ile Sürekli Entegrasyon (CI)
Problem: Manuel test ve derleme süreçleri
Çözüm: GitHub push olaylarıyla tetiklenen, Docker izole test hattı
Bu yapı:
- Daha hızlı geri bildirim sağlar
- Hataları erken yakalar
- Geliştirme kalitesini artırır
Ön Hazırlıklar
Başlamadan önce şunlar hazır olmalı:
- oaicite:322.04 yüklü sunucu
- En az 1 GB RAM
- Jenkins, Nginx ve Docker kurulu
- Jenkins için atanmış bir domain (örn:
ci.rabisu.cloud) - GitHub hesabı ve örnek bir proje
Adım 1: Jenkins Kullanıcısına Docker Yetkisi Verme
Jenkins’in Docker kullanabilmesi için yetki vermeliyiz.
sudo usermod -aG docker jenkins
- Bu komut Jenkins kullanıcısını docker grubuna ekler.
Kontrol edin:
grep docker /etc/group
- Değişikliğin aktif olması için Jenkins’i yeniden başlatın:
sudo systemctl restart jenkins
Not: Manage Jenkins → Manage Plugins yolundan
- Docker ve Docker Pipeline eklentilerinin yüklü olduğundan emin olun.
Adım 2: GitHub Personal Access Token (PAT) Oluşturma
- Jenkins’in GitHub’ı izleyebilmesi için bir token gerekir.
- GitHub’da:
Settings → Developer settings → Personal access tokens
Generate new token
- Yetkiler:
-
repo:status
-
repo:public_repo (private repo için repo)
-
admin:org_hook
- Token’ı oluşturur oluşturmaz kopyalayın. Sonra görünmez.
Adım 3: Token’ı Jenkins’e Tanımlama
- Jenkins panelinde:
-
Sağ üstten kullanıcı adına tıklayın
-
Credentials → (global) → Add Credentials
Ayarlar:
Kind: Secret text
Secret: GitHub token
Description: GitHub CI Token
- Ardından:
Manage Jenkins → Configure System → GitHub
-
Token’ı seçin
-
Test connection deyin
-
Başarılıysa Save
Adım 4: Örnek Proje ve Jenkinsfile
- Test için örnek bir Node.js projesi kullanabilirsiniz:
https://github.com/content-demo/hello-hapi
- Repo kök dizininde Jenkinsfile bulunur:
pipeline {
agent {
docker {
image 'node'
args '-u root'
}
}
stages {
stage('Derleme') {
steps {
sh 'npm install'
}
}
stage('Test') {
steps {
sh 'npm test'
}
}
}
}
- Bu pipeline:
Node Docker imajı başlatır
-
Bağımlılıkları kurar
-
Testleri çalıştırır
Adım 5: Jenkins Pipeline Oluşturma
- Jenkins ana ekranda:
- New Item
İsim ver (örn: NodeJS-CI-Test)
- Pipeline seç → OK
Ayarlar:
-
GitHub project: Repo URL
-
Build Triggers: GitHub hook trigger
-
Pipeline: Pipeline script from SCM
-
SCM: Git
-
Script Path: Jenkinsfile
-
Save ile çıkın.
Adım 6: İlk Build ve Webhook Oluşturma
-
Webhook’un otomatik oluşması için ilk build gerekir.
-
Build Now butonuna basın
-
Build tamamlanınca Configure → Save yapın
-
GitHub → Settings → Webhooks bölümünde Jenkins görünmelidir.
Test
-
Repo’da küçük bir değişiklik yapıp commit atın.
-
Jenkins otomatik build başlatır 🚀
Sıkça Sorulan Sorular (SSS)
-
Neden Docker kullanıyoruz? Test ortamı izole olur, bağımlılık çakışmaz.
-
Webhook oluşmazsa ne yapmalıyım? GitHub’dan manuel ekleyebilirsiniz.
-
Jenkinsfile zorunlu mu? Pipeline from SCM için evet.
-
Private repo desteklenir mi? Evet, token yeterlidir.
Sonuç
Bu rehberle:
Jenkins + GitHub entegrasyonu kurdunuz Docker içinde otomatik test hattı oluşturdunuz Modern bir CI sürecini canlıya aldınız
Bu yapıyı stabil ve güçlü bir ortamda çalıştırmak için Rabisu Bulut VDS altyapısını gönül rahatlığıyla kullanabilirsiniz 🚀