GitHub Actions ile Dağıtım
Bir GitHub Actions iş akışında derleme, test ve SSH dağıtım adımlarını otomatikleştirin.
GitHub Actions ile Dağıtım, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.
GitHub Actions Nedir?
GitHub Actions, GitHub'a yerleşik bir sürekli tümleştirme ve sürekli teslim platformudur. .github/workflows/*.yml içinde tanımlanan iş akışları gönderme, çekme isteği veya zamanlama olaylarında otomatik olarak çalışır.
Temel İş Akışı Yapısı
Bir iş akışı, her biri adımlardan oluşan bir veya daha fazla işten meydana gelir.
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: "8.3"
- name: Install dependencies
run: composer install --no-dev --optimize-autoloader
- name: Run tests
run: vendor/bin/phpunitSSH Dağıtım Adımı
Sınamalar başarıyla geçtikten sonra SSH üzerinden bir sunucuya dağıtın.
- name: Deploy to server
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /srv/myapp
git pull origin main
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan config:cache
php artisan route:cache
sudo systemctl reload php8.3-fpmGitHub Gizli Bilgileri
Hassas değerleri (SSH anahtarları, API belirteçleri, veritabanı parolaları) Ayarlar → Gizli Bilgiler ve Değişkenler bölümünde şifrelenmiş depo gizli bilgileri olarak saklayın.
Bağımlılıkları Önbelleğe Alma
İş akışlarını hızlandırmak için Composer paketlerini çalıştırmalar arasında önbelleğe alın.
- name: Cache Composer packages
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-composer-${{ hashFiles("composer.lock") }}Sınamaları Çalıştırma
Tümleştirme sınamaları için bir MySQL veya PostgreSQL hizmet kapsayıcısı ekleyin.
services:
mysql:
image: mysql:8
env:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: secret
ports: [3306:3306]Actions'ta Ortam Değişkenleri
Gizli bilgileri iş akışı adımlarına ortam değişkenleri olarak aktarın.
- name: Run tests
env:
DB_HOST: 127.0.0.1
DB_DATABASE: test
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
run: vendor/bin/phpunitKod Kalitesi Eşikleri
Kod kalitesi denetimleri başarısız olursa dağıtımları engelleyin.
- name: PHPStan static analysis
run: vendor/bin/phpstan analyse src --level=6
- name: PHP_CodeSniffer
run: vendor/bin/phpcs src --standard=PSR12Matris Sınaması
Aynı anda birden çok PHP sürümünü sınayın.
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
php: ["8.2", "8.3"]
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}Dağıtım Stratejileri
Yaygın yaklaşımlar: doğrudan git pull (basit), rsync (hızlı dosya eşzamanlama), blue-green (sıfır kesinti), Deployer PHP (otomatik sıfır kesinti). Seçiminizi kesinti toleransınıza göre yapın.
Özet
İş akışlarını .github/workflows/*.yml içinde tanımlayın. Her gönderimde sınamaları çalıştırın, ana dala yapılan birleştirmelerde dağıtım yapın. Bağımlılıkları önbelleğe alın, gizli bilgileri GitHub'da saklayın ve dağıtımdan önce kalite eşikleri ekleyin.
Hızlı Kontrol
SSH anahtarları gibi hassas değerler GitHub Actions için nerede saklanır?
Sıkça Sorulan Sorular
“GitHub Actions ile Dağıtım” dersi ücretsiz mi?
Evet — “GitHub Actions ile Dağıtım” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.
“GitHub Actions ile Dağıtım” dersinde ne öğreneceğim?
Bir GitHub Actions iş akışında derleme, test ve SSH dağıtım adımlarını otomatikleştirin. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
PHP Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“GitHub Actions ile Dağıtım” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Nginx ve PHP-FPM Yapılandırması
- Ortam Değişkenleri ve .env Dosyaları
- GitHub Actions ile Dağıtım
- PHP Uygulamasını Docker'a Taşıma