CI (Continuous Integration) ve CD (Continuous Deployment/Delivery), yazılım geliştirme sürecinin otomasyonunu sağlar. Git bu sistemlerle entegre çalışarak her commit sonrası test, build ve deploy işlemlerini tetikler.
| Kavram | Açıklama |
|---|---|
| CI (Sürekli Entegrasyon) | Her commit sonrası testlerin ve build işlemlerinin otomatik yapılması |
| CD (Sürekli Dağıtım) | Otomatik olarak staging veya production ortamına deploy edilmesi |
| Araç | Özellikleri |
|---|---|
| GitHub Actions | GitHub ile entegre, YAML tabanlı |
| GitLab CI | GitLab reposuna entegre, .gitlab-ci.yml ile çalışır |
| Jenkins | Esnek, açık kaynak ama manuel yapılandırma gerekir |
| CircleCI | Hızlı ve bulut tabanlı |
| Travis CI | GitHub ile uyumlu, sade yapı |
.github/workflows/ci.ymlname: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Node kur
uses: actions/setup-node@v3
with:
node-version: '18'
- run: npm install
- run: npm run lint
- run: npm test
Her push işleminde otomatik olarak testler ve lint çalışır.
develop dalı: CI çalışır, staging ortamına deploy edilirmain dalı: CD çalışır, production ortamına deploy edilir.env dosyaları ve gizli anahtarlar için Secrets kullanskip ci gibi commit mesajları ile CI işlemlerini geçici devre dışı bırakabilirsin