Continuous integration and continuous deployment are often associated with large engineering organisations. In reality, they are most impactful for small teams — where a single missed regression or a manual deployment error can have outsized consequences.
The Core Pipeline Stages
- 1Lint and format check: Catch style and static analysis issues before humans review the code.
- 2Type check: For TypeScript projects, run tsc --noEmit to catch type errors.
- 3Unit tests: Fast, isolated tests that verify individual components and functions.
- 4Integration tests: Tests that verify interactions between components and with databases or external services.
- 5Build: Compile the application and verify the build artifact is valid.
- 6Deploy to staging: Automatic deployment to a staging environment on merge to main.
- 7Smoke tests: A minimal set of end-to-end tests against staging to verify critical paths work.
- 8Deploy to production: Manual gate or automatic deployment on successful staging smoke tests.
Tooling for Small Teams
GitHub Actions is the right choice for most teams already using GitHub. It is free for public repos and has generous free minutes for private repos. For more complex pipelines or multi-cloud deployments, CircleCI and GitLab CI are strong alternatives.
Pipeline Performance
A pipeline that takes 20 minutes to run will be worked around. Engineers will push code without waiting for results, defeating the purpose. Target under 10 minutes for the full pipeline by parallelising test stages, caching dependencies, and running only the tests relevant to changed code.
Starting Small
You do not need all eight stages from day one. Start with lint, type check, and automated deployment to staging. Add test stages as your test coverage grows. The best pipeline is one your team actually uses.
Want help setting up a CI/CD pipeline?
Asquarify sets up CI/CD infrastructure as part of every project. We build the automation that lets your team ship with confidence.
Get in touch