CI/CD Concepts
The fundamentals behind reliable pipelines.
Understand the building blocks of CI/CD: runners, exit codes and signals, caching, artifacts, concurrency, secrets, and pipeline reliability. Background knowledge that makes debugging faster.
Runners & compute
How CI runners work and where cost comes from.
Cold vs warm startA cold start provisions a fresh runner before a job begins; a warm start reuses a ready one. Learn why cold s…
Self-hosted vs hosted costGitHub-hosted runners bill per minute; self-hosted runners shift cost to compute and ops. Learn how to compar…
CI minutes & billingCI minutes measure how long your jobs run, and most providers bill by them with rounding and machine multipli…
Runner image / AMIA runner image is the prebuilt disk template a CI runner boots from, with the OS and tools already installed.…
What is a CI runner?A CI runner is the machine that executes your pipeline jobs. Learn how runners work, the difference between h…
What is ephemeral CI?Ephemeral CI means each job runs on a fresh, single-use environment that is destroyed afterward. Learn why it…
Exit codes & signals
What process exit codes mean in CI.
Exit code 1 vs 2Exit code 1 is the generic failure; exit code 2 often signals misuse or a usage error. Learn how to tell them…
Exit code 127Exit code 127 means the shell could not find the command you tried to run - usually a missing tool or a PATH…
Exit code 137 (SIGKILL)What exit code 137 means in CI: the process received SIGKILL, almost always from the out-of-memory killer. Ho…
Exit code 143 (SIGTERM)Exit code 143 means a process was terminated by SIGTERM (128 + 15). In CI it usually means cancellation, a ti…
Exit codes & signalsA practical guide to process exit codes and signals in CI/CD - what 1, 2, 124, 126, 127, 130, 137, and 143 me…
SIGKILL vs SIGTERMSIGTERM politely asks a process to stop and can be handled; SIGKILL forces it to die and cannot be caught. Le…
What is the OOM killer?The OOM killer is the Linux mechanism that kills a process when the system runs out of memory. Learn how it p…
cgroup memory limitA cgroup memory limit caps how much memory a container or job can use, independent of the host. Learn why a j…
Caching & artifacts
Speeding up pipelines reliably.
Cache key vs restore keyA cache key is the exact entry to save and look up; restore keys are prefix fallbacks for a near-miss. Learn…
CI caching explainedHow CI caching works, what to cache (dependencies, build outputs, Docker layers), how cache keys and restore…
Dependency cachingRe-downloading dependencies every run is wasted time. Learn what to cache, how to key it on a lockfile, and t…
Docker layer cachingDocker builds images in cached layers, reusing unchanged ones to skip work. Learn how layer caching works and…
What is a lockfile?A lockfile pins the exact versions of every dependency so builds are reproducible. Learn why committing it is…
Artifact retentionArtifact retention controls how long CI keeps build outputs, logs, and reports before deleting them. Learn wh…
Reliability
Flaky tests, retries, and pipeline health.
CI vs delivery vs deploymentContinuous integration, delivery, and deployment are three different things. Learn exactly where each stops a…
Fail-fast vs continueFail-fast stops the pipeline at the first failure; continue-on-error lets it press on. Learn what each does,…
Flaky tests in CIWhat makes tests flaky, how to detect flakiness, and how to contain it with quarantines and bounded retries w…
Quarantining flaky testsQuarantining moves known-flaky tests out of the blocking path so they stop failing builds, while keeping them…
Is GitHub Actions down?How to tell if GitHub Actions is down - check the status page, distinguish an outage from your own failure, a…
Pipeline observabilityPipeline observability is the ability to answer why a build failed, slowed, or flaked from data you already c…
Retries & idempotencyRetrying a failed step only helps if the step is idempotent - safe to run twice. Learn what idempotency means…
What is a build matrix?A build matrix runs the same job across many combinations - OS, language version, dependency set. Learn how m…
What is a workflow?A GitHub Actions workflow is a YAML file that defines when and how your CI runs. Learn how events, jobs, step…
What is CI/CD?CI/CD is the practice of automatically building, testing, and shipping code on every change. Learn what conti…
Fan-out / fan-inFan-out splits work into many parallel jobs; fan-in collects their results into one. Learn this core pipeline…
Explore other topics
GitHub ActionsWorkflow, runner, and YAML errors - diagnosed and fixed.
Node.js & npmnpm, yarn, and pnpm failures in CI - solved.
DockerBuild, run, compose, and registry errors - explained.
Pythonpip, poetry, venv, and pytest failures - fixed.
Java & JVMMaven, Gradle, and JVM failures in CI - resolved.
GoGo build, module, and test failures - diagnosed.