Fri Jan 10 2025
Modern web uygulamaları geliştirirken, sürekli entegrasyon (CI) ve sürekli dağıtım (CD) pipeline'ları, geliştirme sürecini hızlandırmak ve hataları en aza indirmek için kritik öneme sahiptir. Next.js, React tabanlı bir framework olarak, sunucu taraflı rendering (SSR), statik site generation (SSG) ve API rotaları gibi özellikleriyle modern web uygulamaları için popüler bir seçenektir. Bu yazıda, Next.js projelerinde CI/CD pipeline'larının nasıl kurulacağını detaylı bir şekilde ele alacağız.
Sürekli Entegrasyon (CI): Geliştiricilerin kod değişikliklerini sık sık bir merkezi depoya (örneğin, GitHub) entegre etmesini sağlayan bir uygulamadır. Her entegrasyon, otomatik testler ve build işlemleriyle doğrulanır.
Sürekli Dağıtım (CD): CI sürecinden sonra, otomatik olarak uygulamanın canlı ortama dağıtılmasını sağlayan bir uygulamadır. Bu, manuel müdahaleleri en aza indirir ve hızlı bir şekilde yeni özelliklerin kullanıcılara ulaşmasını sağlar.
Next.js projesi için bir CI/CD pipeline'ı kurarken, genellikle aşağıdaki adımları takip ederiz:
GitHub Actions, GitHub depoları için ücretsiz olarak sunulan bir CI/CD aracıdır. Next.js projesi için GitHub Actions kullanarak bir CI/CD pipeline'ı kurabiliriz.
Öncelikle, basit bir Next.js projesi oluşturalım:
npx create-next-app nextjs-ci-cd-example
cd nextjs-ci-cd-example
Proje içerisinde package.json
dosyasında aşağıdaki script'ler bulunur:
{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"test": "jest"
}
}
GitHub Actions, .github/workflows
dizini altında YAML dosyaları ile çalışır. Bu dizin altında ci-cd.yml
adında bir dosya oluşturalım:
name: Next.js CI/CD Pipeline
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: "14"
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
- name: Build project
run: npm run build
- name: Deploy to Vercel
uses: amondnet/vercel-action@v20
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
Vercel'e dağıtım yapabilmek için, GitHub Secrets üzerinden Vercel kimlik bilgilerini eklememiz gerekiyor. GitHub deposunda:
New repository secret
butonuna tıklayın.VERCEL_TOKEN
, VERCEL_ORG_ID
, ve VERCEL_PROJECT_ID
için gerekli değerleri ekleyin.Artık, main
branch'ine bir push veya pull request yapıldığında, GitHub Actions otomatik olarak CI/CD pipeline'ını çalıştıracaktır. Bu pipeline:
Next.js projelerinde CI/CD pipeline'ları kurmak, geliştirme sürecini otomatikleştirir ve hataları erken aşamada tespit etmeyi sağlar. GitHub Actions gibi araçlar, bu süreci kolaylaştırır ve ücretsiz olarak sunulur. Bu yazıda, basit bir Next.js projesi için GitHub Actions kullanarak bir CI/CD pipeline'ı nasıl kuracağımızı adım adım ele aldık. Bu örnek, projenizin ihtiyaçlarına göre genişletilebilir ve özelleştirilebilir.
CI/CD pipeline'ları, modern yazılım geliştirme süreçlerinin vazgeçilmez bir parçasıdır ve Next.js gibi modern framework'lerle birlikte kullanıldığında, geliştirme ve dağıtım süreçlerinizi büyük ölçüde iyileştirebilir.
All rights reserved