# Jenkins

Adres: https://softwaredictionary.org/tr/terimler/jenkins
Kategori: DevOps ve Bulut
Son güncelleme: 2026-10-03
Okunuşu: cenkins

Kısaca: Jenkins, yazılımı pipeline'larla derleyen, test eden ve dağıtan açık kaynaklı bir otomasyon sunucusudur; en eski ve en yaygın CI/CD araçlarından biridir.

## Jenkins nedir?

Jenkins, Kohsuke Kawaguchi'nin Sun Microsystems'de geliştirdiği bir derleme sunucusu olan Hudson'dan doğdu ve projenin yönü konusundaki bir anlaşmazlığın ardından 2011'de bugünkü adını aldı. Kendi sunucularınızda çalışır, kaynak depolarını izler ve kod değiştiğinde, bir zamanlamaya göre ya da biri bir düğmeye bastığında işleri çalıştırır.

Modern Jenkins işleri, depoda saklanan bir `Jenkinsfile` içinde tanımlanan pipeline'lardır; build, test ve deploy gibi aşamalarla, Groovy tabanlı bir sözdizimiyle yazılır. Bir controller işi zamanlar, makine, container ya da Kubernetes pod'u olabilen agent'lar da adımları çalıştırır; böylece birçok derleme paralel yürüyebilir.

Gücü esnekliğidir: eklentiler onu neredeyse her sürüm kontrol sistemiyle, derleme aracıyla, test framework'üyle, bulutla ve sohbet uygulamasıyla entegre eder ve CI'ın çok ötesindeki işleri otomatikleştirebilir. Bu esnekliğin bir bedeli vardır; ekiplerin Jenkins'i kendilerinin barındırması, güvenceye alması, güncellemesi ve yedeklemesi, eklentilerini de uyumlu tutması gerekir.

Sık yapılan bir yanlış, Jenkins'in tek ciddi CI/CD seçeneği olduğunu düşünmektir. GitHub Actions, GitLab CI ve CircleCI gibi barındırılan servisler sunucu gerektirmez ve pipeline dosyalarını kodun yanında tutar; bu yüzden birçok yeni proje onları seçer. Jenkins, mevcut kurulumları ya da şirket içi (on-premises) özel gereksinimleri olan büyük şirketlerde yaygın olmaya devam ediyor.

## Önemli noktalar

- Jenkins, CI/CD için kendi sunucunuzda çalışan açık kaynaklı bir otomasyon sunucusudur.
- Hudson'dan ayrıldı ve adını 2011'de aldı.
- Pipeline'lar build, test ve deploy aşamalarıyla bir Jenkinsfile içinde tanımlanır.
- Bir controller işleri zamanlar, agent'lar çalıştırır; çoğu zaman paralel olarak.
- Eklentiler onu esnek yapar, ama ekiplerin bakımını ve güvenliğini üstlenmesi gerekir.

## Örnek: Bildirime dayalı (declarative) bir Jenkinsfile

```groovy
pipeline {
    agent { docker { image 'node:22' } }

    stages {
        stage('Install') {
            steps { sh 'npm ci' }
        }
        stage('Test') {
            steps { sh 'npm test' }
        }
        stage('Deploy') {
            when { branch 'main' }
            steps { sh './deploy.sh production' }
        }
    }

    post {
        failure { echo 'Build failed: notify the team' }
    }
}
```

## Sık sorulan sorular

**Jenkins ile GitHub Actions arasındaki fark nedir?**

Jenkins, Jenkinsfile'lar ve eklentilerle yapılandırılan, kurup bakımını yaptığınız bir sunucudur. GitHub Actions ise GitHub'a yerleşik, iş akışları YAML ile yazılan ve runner'ları sizin için sağlanan barındırılan bir servistir. Jenkins daha fazla kontrol, Actions daha az bakım sunar.

**Jenkinsfile nedir?**

Bir Jenkins pipeline'ını aşamaları ve adımlarıyla birlikte kod olarak tanımlayan, depodaki bir metin dosyasıdır. Onu kodla birlikte tutmak, pipeline'ın da her şey gibi incelenip sürümlenmesi demektir.

**Jenkins ücretsiz mi?**

Evet. Jenkins MIT lisanslı açık kaynaktır. Maliyetleri, üzerinde çalıştığı sunucular ve işletmek için harcanan zamandır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
