GitHub Actions ile CI/CD Pipeline Kurulumu

Projenizin teknolojisini ve dağıtım hedefini verin; test, lint, derleme ve dağıtım adımları önbellekli, gizli bilgileri güvenli, dal stratejisine uygun bir GitHub Actions iş akışı dosyası alın.

YZ Admin Güncellendi: 26 Eylül 2026 0 yorum

Prompt

Sen hızlı ve güvenilir dağıtım hatları kuran bir DevOps mühendisisin. Proje, dil ve test araçları: [PROJE] Dal stratejisi (main, develop, PR akışı): [DAL_STRATEJISI] Dağıtım hedefi ve yöntemi: [DAGITIM] Özel gereksinimler (veritabanı testi, onay adımı, bildirim): [GEREKSINIMLER] Başlamadan önce: Eksik bir bilgi varsa en fazla 3 kısa soru sor ve yanıtımı bekle. Çıktı: 1. Akış şeması: Hangi olayda (PR, push, etiket) hangi işler çalışır; kısa bir liste. 2. İş akışı YAML dosyası: - Lint, test ve derleme işleri; bağımsız işler paralel. - Bağımlılık önbelleği. - Test için gerekiyorsa servis konteyneri (ör. veritabanı). - Yalnızca ana dala birleştirmede çalışan dağıtım işi; canlı ortam için manuel onay (environment protection). - Aynı dalda eş zamanlı çalışmaları iptal eden concurrency ayarı. - Gizli bilgiler yalnızca secrets üzerinden; en az yetki ilkesine uygun permissions bloğu. 3. Gerekli secrets listesi ve nereden alınacakları. 4. Geri alma (rollback) yöntemi. 5. Pipeline süresini kısaltmak için 3 öneri. Kurallar: Üçüncü taraf eylemleri belirli bir sürüme sabitle. YAML'ı yorum satırlarıyla açıkla.

Doldurulacak alanlar 4

[PROJE]
Proje ve test araçları Örn. Laravel 11 API, PHPUnit, PHPStan, PHP 8.3
[DAL_STRATEJISI]
Dal ve PR akışı Örn. Özellik dalları → develop (PR) → main (sürüm)
[DAGITIM]
Dağıtım hedefi Örn. develop → staging sunucusu, main → canlı sunucu; SSH ile rsync ve migrate
[GEREKSINIMLER]
Özel gereksinimler Örn. Testler MySQL 8 ile çalışmalı, canlı dağıtım öncesi onay, sonuç Slack'e gitsin

Örnek çıktı

1. Akış
- PR → develop: lint + phpstan + phpunit (paralel)
- push → develop: testler + staging dağıtımı
- push → main: testler + canlı ortam onayı + canlı dağıtım + Slack bildirimi

2. YAML (kısaltılmış)
name: ci-cd
on:
pull_request:
branches: [develop]
push:
branches: [develop, main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-24.04
services:
mysql:
image: mysql:8.0
...

3. Secrets: STAGING_SSH_KEY, PROD_SSH_KEY, PROD_HOST, SLACK_WEBHOOK_URL

4. Rollback: Her dağıtım releases/zaman-damgası klasörüne yapılır ve "current" sembolik bağlantısı değiştirilir; geri almak için bağlantı önceki klasöre çevrilir.
ChatGPT'de Aç Yerel modelimde dene
İleri SeviyeKurumsal

Topluluk denemeleri (0)

Bu promptla üretilen görseller. Siz de denediyseniz sonucunuzu paylaşın; editör onayından sonra burada görünür.

Paylaşmak için giriş yap

Henüz paylaşılan deneme yok. İlk sonucu siz paylaşın.

Yorumlar (0)

Henüz yorum yok

Promptu denediyseniz deneyiminizi veya geliştirme önerinizi paylaşın.

Yorum yapmak için giriş yap