CI/CD
The pipeline that turns a git push into tests, a build, and a deploy — without a human running commands.
1 hrOverview
Continuous Integration/Continuous Deployment automates what used to be manual: every push runs the test suite, a merge to main builds the app, and a successful build deploys automatically — no one runs those steps by hand.
Why it matters
Manual deployment is where mistakes live — forgetting to run migrations, deploying an untested branch, skipping a step under time pressure. A pipeline runs the same steps, in the same order, every single time, and refuses to deploy if tests fail.
How backend developers use it
A pipeline that runs on every pull request (compile, run unit tests, run integration tests against a throwaway Postgres container) and a separate pipeline that runs only on merge to main (build the Docker image, push it, trigger a deploy) — PR feedback stays fast because it doesn't wait for a deploy.
Common mistakes
Warning
Deploying directly from a developer's laptop "just this once" — the one time it bypasses the pipeline is usually the time something untested ships.
Warning
A pipeline with no test stage, so it becomes Continuous Deployment of whatever compiles, tested or not.
Warning
Secrets hardcoded into the workflow file instead of the CI platform's secret store — the workflow file is usually visible to anyone with repo read access.
Warning
No rollback plan — the pipeline can deploy forward but nobody has practiced deploying the previous version back.
Example commands
Check the status of the last workflow run
gh run list --limit 5
Watch a running workflow live
gh run watch
Resources
Retrieval check
Before you continue
- Explain what this tool or practice changes in the delivery lifecycle.
- Name one common failure it helps you diagnose or prevent.
- Repeat one example command from memory, then verify it.