Pipeline Stages
Lint: catch code style issues (seconds)
Type Check: catch type errors (seconds)
Unit Tests: verify logic (seconds to minutes)
Integration Tests: verify components together
Build: compile and bundle
Deploy to Preview: staging environment
E2E Tests: verify critical paths
Deploy to Production: release
GitHub Actions Workflow
name: CI/CDon: push: branches: [main] pull_request: branches: [main]jobs: lint-and-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: npm - run: npm ci - run: npm run lint - run: npm run typecheck - run: npm run test - run: npm run build
Deployment Strategies
Blue-Green: two identical environments, swap traffic
Canary: gradually roll out to percentage
Rolling: update instances one at a time
Feature Flags: deploy code without enabling features
Rollback Procedures
Keep previous deployment ready
Database migrations should be backward-compatible
Use feature flags for instant toggles
Monitor error rates post-deployment