CodeBlanks Logo Icon CodeBlanks

CI/CD temelleri

PHP kursu · Uzman · Ders 46/54

GitHub Actions veya GitLab CI ile sürekli entegrasyon hattı kurmayı öğrenirsin.

Sürekli entegrasyon ve dağıtım

Sürekli entegrasyon (CI), her commit'te testleri otomatik çalıştırır. Sürekli dağıtım (CD), testler geçerse yeni sürümü sunucuya gönderir.

GitHub Actions bir .yml dosyasıyla iş akışı tanımlar. name: CI iş akışı adı, on: push ne zaman çalışacağı, jobs: altında bir veya daha fazla iş tanımlanır.

Her iş bir runs-on sanal makinesinde çalışır; steps altında uses ile hazır eylemler, run ile kabuk komutları sıralanır.

Tipik PHP hattı

Tipik bir PHP hattı: actions/checkout@v4 kodu çeker, composer install bağımlılıkları kurar, php test testleri çalıştırır.

Hepsi yeşilse dağıtım adımı devreye girer: imajı derle, kayıt defterine (registry) it, sunucuda çek ve yeniden başlat.

Bir adım başarısız olursa hattın durur ve ekip uyarılır; bu yüzden kısa, hızlı ve tekrarlanabilir adımlar tercih edilir.

Uygulama CI iş akışı YAML'ı üret

PHP ile bir GitHub Actions YAML metni üret: name: CI, on: push, jobs:, test:, runs-on: ubuntu-latest, steps:, - uses: actions/checkout@v4, - run: composer install ve - run: php test satırlarından oluşsun. file_put_contents ile ci.yml adına yaz ve metni ekrana bas.

Örnek çözümü göster
$yaml değişkenini tek tırnaklı parçalar ve "\n" ile birleştir. Girintiler için tek tırnak içine boşluk koy. Sonra file_put_contents("ci.yml", $yaml); ve echo $yaml; ekle.
Örnek çözüm:
<?php
// CI iş akışı YAML'ını üret
$yaml = 'name: CI' . "\n" .
    'on: push' . "\n" .
    'jobs:' . "\n" .
    '  test:' . "\n" .
    '    runs-on: ubuntu-latest' . "\n" .
    '    steps:' . "\n" .
    '      - uses: actions/checkout@v4' . "\n" .
    '      - run: composer install' . "\n" .
    '      - run: php test' . "\n";
file_put_contents("ci.yml", $yaml);
echo $yaml;

Kendini test et

  1. CI/CD adımlarını eşleştir

    composer install
    Bağımlılıkları kurar
    php test
    Testleri çalıştırır
    runs-on
    İşin çalışacağı makine
    deploy
    Sunucuya gönderir
  2. GitHub Actions'ta bir işin altında adımları hangi anahtar listeler?

    • name
    • on
    • runs-on
    • steps
    Cevabı göster

    steps — Doğru. steps altında uses ve run ile adımlar sıralanır.

  3. PHP sürümünü yaz

    <?php
    $yaml = ["php-version" => '____'];
    print_r($yaml);
    
    Cevabı göster
    <?php
    $yaml = ["php-version" => '8.3'];
    print_r($yaml);
    

Uzman bölümündeki tüm dersler