CI/CD is a way of shipping software where machines, not people, do the repetitive checking and releasing. CI, continuous integration, means every code change is automatically built and tested as soon as it is pushed. CD, continuous delivery or continuous deployment, means changes that pass are automatically prepared for release, or released outright.
The two halves explained
Continuous integration is about catching problems early. Each time a developer pushes a commit or opens a pull request, a server checks out the code, installs dependencies, builds it and runs the test suite. If anything fails, the developer hears about it within minutes, while the change is fresh in their mind.
Continuous delivery means every change that passes CI is packaged and ready to go live with one click or approval. Continuous deployment removes even that click: passing changes go straight to the production environment. Teams pick one depending on how much human sign-off they want.
What a pipeline looks like
The sequence of steps is called a pipeline, defined in a config file stored with the code. A common small setup on GitHub Actions:
- On every push: install packages, run the linter, run tests.
- On every pull request: also build a preview of the site and post its link.
- On merge to
main: build the production version and deploy it.
Other popular CI/CD services include GitLab CI/CD, CircleCI and Jenkins. Hosts like Vercel and Netlify have the delivery half built in: connect a repository and each merge publishes automatically.
Example: a pipeline that stops a bad release
A cleaning company's booking app has a test that submits a sample booking. A developer changes the date picker and pushes. CI runs the test, which fails because dates now save a day early due to a time zone change. The pipeline marks the pull request red and nothing is deployed. Customers never see the bug.
Does a small business need CI/CD?
For a brochure site edited in a builder, no. For a custom site or app that a developer changes regularly, a basic pipeline is cheap and worth having, mostly for the automatic release and preview links. The value of the CI half depends entirely on whether meaningful tests exist; a pipeline with no tests only proves the code compiles.
Common CI/CD mistakes
- Ignoring flaky tests. If people learn to re-run red builds until they go green, the pipeline stops protecting anything.
- Secrets printed in build logs. Use the platform's secret storage and never echo keys.
- No rollback plan. Automatic deploys need an equally quick way to restore the previous version.
- Deploying database changes blindly. Code can be rolled back in seconds; a dropped table cannot.
Related terms
- Deployment: the release step CD automates.
- Pull request: where CI results usually appear.
- Staging environment: an optional stop before production.
- GitHub: home of GitHub Actions.