Ch. 16 · Git & CI/CD

CI Caches Versus Reproducible Build Inputs

CI Caches Versus Reproducible Build Inputs. Learn the reasoning, a practical example, common mistakes and an interview exercise.

~2 min readintermediateupdated Oct 3, 2026

Caches improve speed but must not become hidden correctness dependencies. Cache keys should follow the inputs that determine cached output.

Before you start

You should understand commits, branches, the working tree and the staging area. Draw the commit graph before changing history. Try commands in a disposable repository with a clean working tree so you can observe exactly which references and files each operation changes.

The practical goal is to reason through this situation: Dependency caches include lockfile and runtime information where relevant. Read the walkthrough first, then try the interview exercise before opening its answer. The important part is explaining the decision and its consequences, rather than remembering a definition alone.

Step-by-step walkthrough

Step 1: Define complete inputs

Cache keys should track lockfiles, runtime and relevant build settings.

Step 2: Treat misses as performance

A clean build must still succeed without cached output.

Step 3: Compare reproducibility

Investigate differences caused by stale or missing cache dependencies.

Worked scenario

Dependency caches include lockfile and runtime information where relevant.

A cached dependency directory contains an undeclared package, so CI succeeds until the cache is cleared. Clean installation reveals that the manifest is incomplete. Fix the declared inputs rather than extending cache retention; cache should accelerate a correct build, not provide hidden required state.

Common mistake

A stale cache can make a failing clean build appear successful.

Verify the behavior

Run cached and clean builds from the same source and compare outcomes.

Interview exercise

Verify reproducibility.

Answer and reasoning

Run a clean build with documented inputs and compare outcomes; treat cache misses as slower, not incorrect.

Continue learning

Compare the scenario with the Git and CI/CD interview questions and test your understanding with the Git and CI/CD MCQs. For terminology and implementation details, consult the reference material.

More in Git & CI/CD

read ✓Git & CI/CD · easy

Git Detached HEAD

What a detached HEAD is, when it happens, and how to keep commits made in that state.

~2 min readread →
read ✓Git & CI/CD · mid

Git Hooks and Local Automation

Automate checks with client and server hooks, share them through a framework, and enforce the same rules in CI where they cannot be bypassed.

~2 min readread →
read ✓Git & CI/CD · hard

Git LFS for Large Files

Track large binaries with Git LFS, keep pointer files in the repository, and plan for LFS storage and access.

~2 min readread →
esc