Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel için İlk GitHub Actions İş Akışınızı Oluşturun
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel için İlk GitHub Actions İş Akışınızı Oluşturun

Yazılım

Laravel için İlk GitHub Actions İş Akışınızı Oluşturun

teknomers
Son güncelleme: 20 Temmuz 2026 00:06
teknomers
Paylaş
Paylaş

Bu yazıda, CI/CD’nin ne olduğunu ve neden önemli olduğunu açıklayacağız. Sonunda, GitHub Actions iş akışınızın otomatik olarak her seferinde çalışmasını sağlayacak bir yapı oluşturacağız.

Her satırı açıklayacağım. Daha önce YAML yazmadıysanız sorun değil — sözdizimi, düzeni gördüğünüzde basit hale geliyor.

Adım 1: İş Akışı Dosyasını Oluşturma

Laravel projenizin kök dizininde aşağıdaki dizin yapısını oluşturun:

your-project/
└── .github/
    └── workflows/
        └── api-ci.yml

.github klasörü, depoyuza ait kök dizinde yer almalıdır ( composer.json ile aynı seviyede). GitHub, iş akış dosyalarını özellikle .github/workflows/ dizininde arar.

Adım 2: Tetikleyici Bloğu

api-ci.yml dosyasını açın ve tetikleyici ile başlayın:

name: API CI

on: push: branches: [main, develop] paths: ['api/'] pull_request: branches: [main, develop] paths: ['api/']

Bu ne yapar:

  • name: GitHub Actions arayüzünde görünen etikettir.
  • on: iş akışının ne zaman çalıştığını tanımlar.
  • push: + branches: — main veya develop branch’ine push yapıldığında çalışır.
  • pull_request: — bu branch’leri hedefleyen bir PR açıldığında veya güncellendiğinde çalışır.
  • paths: — yalnızca api/ içindeki dosyalar değiştiğinde çalışır (tek bir Laravel uygulamanız varsa bunu atlayın, monorepo değilse).

Adım 3: İlk Görev

defaults:
  run:
    working-directory: api   # Laravel uygulamanız kök dizindeyse burayı kaldırın

jobs: tests: name: Tests (PHP 8.4) runs-on: ubuntu-latest

steps:
  - uses: actions/checkout@v4

  - name: Setup PHP 8.4
    uses: shivammathur/setup-php@v2
    with:
      php-version: '8.4'
      extensions: mbstring, pdo, pdo_mysql, bcmath, gd, zip, intl
      coverage: none
      tools: composer:v2</code></pre>
<p><code>actions/checkout@v4</code>, deponuzun kodunu çalıştırıcıya indirir. Olmadan, sanal makinenin boş bir diski vardır.</p>
<p><code>shivammathur/setup-php@v2</code>, PHP'yi kurmak için topluluk standartlarında bir eylemdir. Sürümü ve uzantıları belirttiğinizde işe yarar. <code>tools: composer:v2</code> satırı, Composer 2'nin kurulu olmasını sağlar.</p>
<h2>Adım 4: Bağımlılık Önbellekleme</h2>
<p>Önbellek olmadan, her CI çalışmasında Composer paketlerinizi baştan indiriyorsunuz. 80 bağımlılığı olan bir projede bu 2-3 dakika sürer. Önbellekleme ile bu, 15 saniye alır.</p>
<pre><code>      - name: Cache Composer dependencies
    uses: actions/cache@v4
    with:
      path: api/vendor
      key: php-8.4-composer-${{ hashFiles('api/composer.lock') }}
      restore-keys: php-8.4-composer-</code></pre>
<p><code>key</code>, <code>composer.lock</code> dosyasının bir hash’ini içerir. Kilit dosyanız değiştiğinde (bir paket eklediğinizde), önbellek anahtarı değişir ve CI yeni bağımlılıkları indirir. Hiçbir şey değişmediğinde, önbellekteki <code>vendor/</code> klasörü geri yüklenir.</p>
<h2>Adım 5: Kurulum ve Test</h2>
<pre><code>      - name: Install dependencies
    run: composer install --no-interaction --prefer-dist --no-progress

  - name: Copy environment file
    run: cp .env.example .env

  - name: Generate app key
    run: php artisan key:generate

  - name: Run tests
    run: ./vendor/bin/pest</code></pre>
<p><code>--no-interaction</code>, Composer'ın soru sormasını engeller. <code>--prefer-dist</code>, git reposunu klonlamak yerine zip arşivleri indirir (daha hızlıdır). <code>--no-progress</code> ise günlükleri temiz tutar.</p>
<p><code>cp .env.example .env</code> adımı önemlidir: Laravel, bir <code>.env</code> dosyası olmadan çalışmaz. <code>env.example</code> dosyanız, uygulamanın başlangıçta okuduğu tüm değerler için makul varsayılanlara sahip olmalıdır.</p>
<h2>Adım 6: Gönderin</h2>
<pre><code>git add .github/workflows/api-ci.yml

git commit -m "ci: add initial GitHub Actions workflow"
git push origin main

GitHub’daki deponuza gidin, Actions sekmesine tıklayın. İş akışının göründüğünü ve çalışmaya başladığını göreceksiniz. İçine tıklayın ve adımların gerçekte nasıl yürütüldüğünü izleyin.

Yeşil yanıyorsa — tebrikler. CI’niz var. Gelecek her push, bunu otomatik olarak çalıştıracaktır.

Yeni Kullanıcıların Sık Karşılaştığı Hatalar

“Process completed with exit code 1” hatası key:generate sırasında
.env.example dosyanızda APP_KEY= boş. APP_KEY= (boş değer) ekleyin ve key:generate bunu dolduracaktır.

Testlerde “Class not found” hataları
Yerel olarak composer dump-autoload çalıştırın ve sonucu commit edin. CI, autoload oluşturmayı da içeren composer install çalıştırır, ancak composer.json‘da eski yollar varsa, bu hata burada ortaya çıkar.

Yerelde geçen testler, CI’de başarısız oluyor
Testleriniz, yalnızca sizin bilgisayarınızda mevcut olan bir şeye — bir veritabanına, bir önbellek kaydına veya bir ortam değişkenine bağlanıyordur. Bunu düzgün bir şekilde Yazı 3 (MySQL) ve Yazı 5 (gizli bilgiler) ile çözüyoruz.

Sonraki yazıda, testlerinizin gerçek bir veritabanı yerine SQLite ile çalışmasını sağlamak için bir MySQL hizmet konteyneri ekleyeceğiz.


Orijinal olarak dineshstack.com‘da yayımlanmıştır — kod örnekleri ve güncellemeler ile tam sürümünü oradan okuyun.

Kaynak: Orijinal Makale

Contents
  • Adım 1: İş Akışı Dosyasını Oluşturma
  • Adım 2: Tetikleyici Bloğu
  • Adım 3: İlk Görev
  • Yeni Kullanıcıların Sık Karşılaştığı Hatalar
Gerçek Zamanlı Bildirim Sorunlarını Vue, Laravel ve Socket.IO Kullanarak Çözme
Sıfırdan RAG’a: Laravel Uygulamasında Retrieval-Augmented Generation’ı Uygulama
Sunucu Çökme Sorunlarını Önleme: Laravel SaaS Uygulamaları için Dinamik API Hız Sınırlama
Laravel Gözlemcilerinden Neden Ayrıldım?
PHP 8.4 Güncellemeleri Sonrası Laravel Herd’de dyld: Symbol not found Hatasını Nasıl Çözdüm (macOS Monterey)
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Kodak EC35 Uygun Fiyatlı Bir Filmi Çekim Kamerası mı?
Sonraki Makale Kritik NGINX Açığı: Çalışanları Çökertir ve Uzak Kod Yürütme İhtimali!

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

YouTube, AI içerikler ve rahatsız edici videolar için yeni kurallar getiriyor
Yapay Zeka
Hollanda çip sektörü, Çin müdahalesi riski altında; daha sıkı denetim çağrısı
Donanım
Acil: HollowGraph Malware, Microsoft 365’te 2050’ye Gizleniyor!
Siber Güvenlik
Adobe Kamera Uygulaması Yeni Özelliğiyle Fotoğraflarınıza Yapay Zeka ile Değerlendirme Yapacak
Genel
AI Tepkisi ve ‘Yapay Devlet’ Üzerine Dr. Jill Lepore’nin Görüşleri
Liste
Xbox Oyun Geçişi Kütüphanesinde Büyük Değişiklikler Olacak
Oyun
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?