170 cards
Continuous Integration (CI) is a development practice where engineers frequently merge code changes into a shared repository — often multiple times per day. Each merge triggers an automated build and test process, surfacing integration problems within minutes rather than weeks. The core benefits include early bug detec...
GitHub Actions is a CI/CD platform built directly into GitHub, where every push, pull request, or scheduled event can trigger an automated workflow defined in YAML under `.github/workflows/`. A workflow is composed of one or more jobs, each of which is an independent unit of work that runs on a designated runner. By de...
Jenkins pioneered the idea of pipeline as code with the Jenkinsfile, a text file checked into the repository root that defines the build in Groovy. Declarative pipelines are the recommended style for most projects: a top-level `pipeline { }` block contains an `agent any` directive, a `stages { }` block enumerating the...
Build artifacts are the output files produced by a build stage — compiled binaries, Docker images, test reports, coverage reports, or any other deliverable. They flow between stages and jobs, and the same artifact should be promoted across environments unchanged. In GitHub Actions `actions/upload-artifact` and `actions...
Testing is the engine of CI's feedback loop. The test pyramid says you should have many unit tests at the base, fewer integration tests in the middle, and a small number of end-to-end tests at the top — and CI mirrors that structure by running fast unit tests on every commit, integration tests after build, and end-to-e...
The deploy stage is where built artifacts become running software, and choosing a strategy shapes both safety and velocity. A recreate deployment simply shuts down the old version and starts the new one, which is simple but causes downtime and is suitable only for development environments, applications that cannot run...
Modern CI/CD pipelines must defend against attacks on the software supply chain. A Software Bill of Materials (SBOM) is a machine-readable list of every component in an artifact — libraries, versions, licenses, hashes — in formats such as SPDX or CycloneDX, generated at build time using tools like `syft` and used for v...