CI/CD temelleri
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
-
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
-
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.
-
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);