0Pricing
PHP Academy · Ders

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/phpunit

SSH 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-fpm

GitHub 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/phpunit

Kod 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=PSR12

Matris 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

  1. Nginx ve PHP-FPM Yapılandırması
  2. Ortam Değişkenleri ve .env Dosyaları
  3. GitHub Actions ile Dağıtım
  4. PHP Uygulamasını Docker'a Taşıma
← PHP Academy Sayfasına Dön