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.

    Heading 1

    Heading 2

    Heading 3

    Heading 4

    Heading 5
    Heading 6

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

    Block quote

    Ordered list

    1. Item 1
    2. Item 2
    3. Item 3

    Unordered list

    • Item A
    • Item B
    • Item C

    Text link

    Bold text

    Emphasis

    Superscript

    Subscript