irfo
Moderatör
- Katılım
- 7 Ocak 2026
- Mesajlar
- 290
- Tepkime puanı
- 2
- Puanları
- 18
Geliştiricilerin çoğu için GitHub, sadece kodlarını sakladıkları bir depo (repository) olmanın çok ötesine geçti. GitHub Actions, 2026 yılı itibarıyla modern yazılım dünyasının en popüler CI/CD araçlarından biri haline geldi. Ayrı bir sunucu kurmanıza (Jenkins gibi) gerek kalmadan, doğrudan GitHub üzerinde otomasyonlar oluşturmanıza olanak tanır.
Basitçe ifade etmek gerekirse: "GitHub'da bir olay (push, pull request, issue) gerçekleştiğinde, şu işleri benim için yap" demenizi sağlar.
İşte bir web uygulaması veya XenForo eklentisi geliştirenler için kodun PHP syntax hatalarını kontrol eden temel bir CI (Sürekli Entegrasyon) örneği:
# .github/workflows/main.yml
name: PHP_Syntax_Kontrolu
# Hangi olaylarda çalışsın?
on:
push:
branches: [ "main", "dev" ]
pull_request:
branches: [ "main" ]
jobs:
test_et:
# İşin çalışacağı işletim sistemi
runs-on: ubuntu-latest
steps:
# 1. Adım: Depodaki kodu çek
- name: Kodu_Checkout_Et
uses: actions/checkout@v4
# 2. Adım: PHP ortamını kur
- name: PHP_Hazirla
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
# 3. Adım: Bağımlılıkları yükle (Eğer composer varsa)
- name: Composer_Guncelle
run: composer install --prefer-dist --no-progress
# 4. Adım: Hata kontrolü yap
- name: Lint_Kontrolu
run: |
echo "PHP dosyalari kontrol ediliyor..."
find . -name "*.php" -exec php -l {} \;
Basitçe ifade etmek gerekirse: "GitHub'da bir olay (push, pull request, issue) gerçekleştiğinde, şu işleri benim için yap" demenizi sağlar.
GitHub Actions’ın Temel Bileşenleri
Bir otomasyon oluşturmadan önce, bu sistemin lugatını anlamak gerekir:- Workflow (İş Akışı): Deponuza eklediğiniz .github/workflows klasörü altındaki YAML dosyalarıdır.
- Events (Olaylar): İş akışını tetikleyen tetikleyicilerdir (Kod gönderilmesi, birinin 'star' vermesi vb.).
- Jobs (İşler): Aynı "Runner" (çalıştırıcı) üzerinde koşan bir dizi adımdır.
- Steps (Adımlar): Bir işin içindeki tekil görevlerdir (Komut çalıştırmak veya bir "Action" kullanmak).
- Actions: Topluluk tarafından yazılmış, tekrar kullanılabilen paketlenmiş scriptlerdir.
Neden GitHub Actions Kullanmalısınız?
- Entegrasyon: Kodunuz neresindeyse, otomasyonunuz da oradadır. Ayrı bir platforma giriş yapmanız gerekmez.
- Marketplace: Binlerce hazır "Action" (Docker imajı yükleme, AWS'ye bağlanma, Slack bildirimi gönderme vb.) elinizin altındadır.
- Ücretsiz Katman: Kamu projeleri (Open Source) için tamamen ücretsizdir, özel projeler için ise oldukça cömert bir ücretsiz dakikası vardır.
- Matris Derlemeleri: Aynı anda hem Linux, hem macOS hem de Windows üzerinde testler koşturabilirsiniz.
İlk Workflow Dosyanızı Oluşturun
GitHub Actions kullanmak için projenizin kök dizininde şu yolu izleyin: .github/workflows/main.yml.İşte bir web uygulaması veya XenForo eklentisi geliştirenler için kodun PHP syntax hatalarını kontrol eden temel bir CI (Sürekli Entegrasyon) örneği:
# .github/workflows/main.yml
name: PHP_Syntax_Kontrolu
# Hangi olaylarda çalışsın?
on:
push:
branches: [ "main", "dev" ]
pull_request:
branches: [ "main" ]
jobs:
test_et:
# İşin çalışacağı işletim sistemi
runs-on: ubuntu-latest
steps:
# 1. Adım: Depodaki kodu çek
- name: Kodu_Checkout_Et
uses: actions/checkout@v4
# 2. Adım: PHP ortamını kur
- name: PHP_Hazirla
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
# 3. Adım: Bağımlılıkları yükle (Eğer composer varsa)
- name: Composer_Guncelle
run: composer install --prefer-dist --no-progress
# 4. Adım: Hata kontrolü yap
- name: Lint_Kontrolu
run: |
echo "PHP dosyalari kontrol ediliyor..."
find . -name "*.php" -exec php -l {} \;
Actions Marketplace: Tekerleği Yeniden İcat Etmeyin
GitHub Actions'ın gerçek gücü Marketplace'den gelir. Örneğin, kodunuzu her güncellediğinizde otomatik olarak bir Docker imajı oluşturup Docker Hub'a yüklemek istiyorsunuz. Bunun için yüzlerce satır kod yazmak yerine hazır bir action kullanırsınız:XenForo Forum Sahipleri İçin Kullanım Senaryosu
Eğer forumunuz için özel eklentiler geliştiriyorsanız, GitHub Actions sizin "kalite kontrol" uzmanınız olabilir:- CSS/JS Minifikasyonu: Siz ana dosyaları güncellediğinizde, Action otomatik olarak bunları küçültüp (minify) yayınlayabilir.
- FTP/SSH Deploy: Kodunuzu GitHub'a push yaptığınız anda, Action bunu otomatik olarak sunucunuza (VDS/VPS) transfer edebilir.
- Sürüm Notları: Yeni bir release oluşturduğunuzda, eklentinizin değişim günlüğünü (changelog) otomatik hazırlayabilir.