๐Ÿš€

CI/CD

๐Ÿ‘จโ€๐Ÿณ Chef

Deploy automation

CI/CD runs tests and deploys automatically when you push.


CI vs CD

PhaseWhat it does
CI (Continuous Integration)Automatic tests
CD (Continuous Deployment)Automatic deploy

GitHub Actions

# .github/workflows/deploy.yml
name: Deploy

on:
  push:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm ci
      - run: npm test

  deploy:
    needs: test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Deploy to VPS
        run: |
          ssh user@server "cd /app && git pull && docker compose up -d --build"

Secrets

env:
  API_KEY: ${{ secrets.API_KEY }}

Configure at: Settings โ†’ Secrets โ†’ Actions


Best practices

PracticeWhy
Tests before deployDon't break production
Branch protectionRequired review
Easy rollbackQuick recovery if fails

Practice

โ†’ CI/CD with GitHub Actions