CI/CD Pipelines
The problem
Manually testing and deploying every code change is slow and inconsistent, and skipping steps under time pressure is how bugs and outages reach production — CI/CD automates the exact same sequence of build, test, and deploy steps on every change, removing both the manual toil and the temptation to cut corners.
Why now
Shell scripting and piping already established that a sequence of commands can be saved and automated; CI/CD pipelines are exactly that automation, triggered by a code change instead of a human typing a command, and package management already showed that a build has real, resolvable dependencies to install before anything else can run.
Mental model
A CI/CD pipeline is a shell script with a trigger: on every push, automatically run the same build-test-deploy sequence a developer would otherwise run by hand — continuous integration is the build-and-test half (catching problems immediately), continuous deployment is extending that same automation all the way to production, removing the manual, error-prone 'deploy day' step entirely.
Requires
- Shell Scripting & PipingLinux
A CI/CD pipeline's individual steps are, almost without exception, shell commands chained together — the exact scripting skill already covered, just triggered automatically instead of run by hand.
- Package ManagementLinux
Every pipeline run starts by installing dependencies, the exact package-management operation already covered, now automated as the first step of every single build.
Unlocks
Used in
- GitHub Actions, GitLab CI, Jenkins, and every modern software team's deployment process
- Automated test suites run on every pull request before merging is allowed
- Automated deployment to production on every merge to a main branch
- Build artifacts (compiled binaries, container images) produced consistently by the pipeline rather than a developer's machine
Projects
- Set up a CI pipeline for a small project that automatically runs tests on every push and blocks merging if they fail
- Extend the pipeline to build and push a container image automatically once tests pass, completing a basic CI/CD flow
Examples
- A pull request that fails its test suite is automatically blocked from merging, without a human needing to remember to run tests locally first
- A merge to main automatically triggers a build, test, and deploy sequence, reaching production without any manual deployment step
Resources
Mastery checklist
- I can set up a CI pipeline that runs tests automatically on every push
- I can explain the difference between continuous integration and continuous deployment
- I can configure a pipeline to block a merge on test failure
- I can extend a pipeline to build and publish a deployable artifact