GitHub Actions ile CI/CD: Otomatik Deploy Nasıl Kurulur?
CI/CD Nedir?
CI/CD (Continuous Integration / Continuous Deployment), kod değişikliklerinin otomatik olarak test edilip sunucuya dağıtılmasını sağlayan bir yazılım geliştirme pratiğidir. Her değişiklikte manuel adımları elle yapmak yerine, bir iş akışı (workflow) tanımlayarak süreci otomatikleştirir; böylece hatalar erken yakalanır ve dağıtım hızlanır.
GitHub Actions Mantığı
GitHub Actions, deponuzdaki .github/workflows/ klasöründe YAML dosyaları ile tanımlanan iş akışlarını çalıştırır. Örneğin "main dalına her push yapıldığında testleri çalıştır ve başarılıysa sunucuya yükle" gibi bir akış kurabilirsiniz.
Örnek Deploy Workflow
name: Deploy
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: SSH ile sunucuya deploy
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_KEY }}
script: |
cd /var/www/proje
git pull origin main
composer install --no-dev
php artisan migrate --force
Gizli Bilgiler (Secrets)
SSH şifresi, anahtar ve sunucu IP gibi hassas bilgileri koda yazmayın. GitHub deposunda Settings > Secrets and variables > Actions bölümünden tanımlayın ve workflow'da ${{ secrets.AD }} şeklinde kullanın.
Avantajları
Otomatik deploy ile insan hatası azalır, her değişiklik kayıt altına alınır ve geri dönüş (rollback) kolaylaşır. Test adımlarını da ekleyerek bozuk kodun sunucuya gitmesini engelleyebilirsiniz.