CI/CD

Automating testing and deployment on every code change.

CurrentintermediateGuide only -- no course yet

Overview

Continuous Integration/Continuous Deployment automates running tests (CI) and deploying code (CD) on every push, catching regressions immediately and making releases routine rather than risky, manual events. This platform's own CI workflow (running format/lint/typecheck/tests/build on every change) is a real, working example.

What it is
The practice of automatically testing (CI) and deploying (CD) code on every change.
Why it's used
Manual testing and deployment are slow and error-prone; automation catches regressions immediately and makes releases boring and routine.
Where it fits
Wraps around a codebase's test suite and deployment process -- this platform's own `.github/workflows/ci.yml` is a real example, not a hypothetical.

Core concepts

  • Pipelines and stages
  • Automated test gates
  • Deployment strategies (rolling, blue-green)
  • Fail-fast feedback

Example

The key discipline is that a failing step blocks progress -- CI is only valuable if a red pipeline actually stops a broken change from shipping.

// Roughly what this platform's own CI pipeline does, on every push:
// 1. npm run lint && npm run typecheck
// 2. npm run test
// 3. npm run build
// A failure at any step blocks the change from merging.

Common use cases

  • Automated testing on every pull request
  • Automated deployment to staging/production

Project ideas

  • Design a CI pipeline (on paper) for a small project: what steps run, in what order, and what blocks a merge?

Official references