GitHub Actions İş Akışı Üreteci

Sonraki

CI (sürekli entegrasyon) olmayan yeni bir GitHub deposu, bir sonraki başarısız dağıtıma yalnızca bir git push uzaklıktadır. Bu üreteç, Node, PHP veya Laravel için başlangıç niteliğinde bir .github/workflows/ci.yml dosyası yazar; checkout adımını, doğru çalışma zamanı action’ını, bağımlılık kurulumunu ve standart test komutunu birbirine bağlar, yeşil/kırmızı noktayı yakmak için ihtiyacınız olan her şey.

Bir iş akışı nasıl oluştururuz?

  1. 1

    Yığını seçin

    Node (`actions/setup-node` kullanır), PHP (`shivammathur/setup-php` kullanır) veya Laravel (PHP + `php artisan test`).

  2. 2

    Ana dalı ayarlayın

    `main` varsayılandır; deponuz hâlâ `master` veya özel bir ad kullanıyorsa bunu değiştirin.

  3. 3

    Oluşturun

    Araç, ilgili dalda `push` ve `pull_request` tetikleyicileri içeren bir YAML dosyası oluşturur.

  4. 4

    .github/workflows/ dizinine commit'leyin

    `.github/workflows/ci.yml` yolunda dosyayı oluşturun ve push edin; bir sonraki commit'te Actions sekmesi yanacaktır.

İş akışı nasıl görünür

name: CI
on:
  push:
    branches: [main]
  pull_request:
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: shivammathur/setup-php@v2
        with:
          php-version: '8.4'
      - run: composer install --no-interaction
      - run: php artisan test

Üretecin sabitlediği action’lar

Action Amacı
actions/checkout@v4 Depoyu runner’a klonlar
actions/setup-node@v4 Bir Node araç zinciri kurar
shivammathur/setup-php@v2 Uzantılarıyla birlikte bir PHP sürümü kurar

Sırada ne eklemeli

  • Test adımından önce bir Lint adımı (npm run lint, ./vendor/bin/phpstan analyse).
  • Matris derlemesi: strategy.matrix ile birden fazla Node/PHP sürümünde çalıştırın.
  • Kapsam yüklemesi: Test adımından sonra codecov-action veya coveralls-action.
  • Gizli anahtarlar: Token’ları asla sabit kodlamayın, secrets.XXX kullanın ve bunları Settings → Actions altında tanımlayın.

Sık yapılan hatalar

  • Etiketleri getirmeyi unutmak: Sürüm mantığınız etiketleri okuyorsa checkout üzerinde with: { fetch-depth: 0 } belirtin.
  • latest Docker imajları kullanmak: Çalıştırmaların aylar sonra da yeniden üretilebilir kalması için sürümleri sabitleyin.
  • Her push’ta 30 dakikalık bir test paketi çalıştırmak: Uzun işleri needs: ile bölerek paralelleştirin.

Sık Sorulan Sorular

.github/workflows/ci.yml dizinizin kök dizininde yer almaktadır. GitHub, bu dizinin içindeki tüm YAML dosyalarını algılar ve her birini Eylemler sekmesinde ayrı bir iş akışı olarak gösterir.

Forklardan gelen çekme istekleri iş akışını çalıştırır, ancak GITHUB_TOKEN yalnızca okuma modunda ayarlanmıştır. Dış katkıda bulunanlar, açıkça izin vermedikçe gizli bilgilere erişemez.

setup-php adımlarında bir strategy.matrix.php: [8.2, 8.3, 8.4] bloğu ekleyin ve ${{ matrix.php }}’ye referans verin. Runner, her sürüm için paralel olarak bir iş oluşturacaktır.

Hayır. Oluşturulan YAML sayfada gösterilir, hiçbir yere yüklenmez veya kaydedilmez; kopyalamayı siz yaparsınız.

İlgili Araçlar

Araç diğer dillerde mevcuttur