A small engineering team with a working CI/CD pipeline ships faster and with fewer incidents than a larger team without one. Setting it up takes about a week. Shipping without it costs that week in manual effort every month.

The minimum viable pipeline

  • Automated tests that run on every pull request
  • A staging environment that deploys automatically on merge to main
  • A production deployment that requires a manual trigger or approval
  • Rollback capability that takes less than five minutes
  • Tool selection

    GitHub Actions handles the CI/CD orchestration for most teams. For containerization, Docker is standard. For orchestration beyond a single server, start with a managed service before Kubernetes. Kubernetes is overengineering for a five-person team.

    The most common pipeline mistakes

    • Tests that take 20 minutes to run. Engineers stop waiting for them and merge anyway.
    • No staging environment. Production becomes the testing environment.
    • Deployment that requires SSHing into servers.
    • No alerting. You find out about production incidents from users, not from your monitoring.

    Rollout sequence

    Week 1: automated tests on pull requests. Week 2: staging and automated deployment. Week 3: production deployment with approval gate. Week 4: monitoring and alerting. Each step is independently valuable.