Continuous Integration
Automatically building and testing every change, so integration problems surface immediately.
Continuous integration is the practice of automatically building and validating every change as it is proposed, so that problems appear within minutes of being created rather than at some later integration event.
The value is proportional to how quickly and how reliably it reports. A slow pipeline gets worked around; an unreliable one gets ignored, which is the more dangerous outcome — once reruns are routine, real failures are indistinguishable from noise. See Flaky Test.
Several failure modes are worth knowing because they all produce a false green.
A partial check set. Immediately after a push only the fastest checks have registered, so a watcher counting pending items sees none and declares success. Confirming against the checks recorded for a specific revision, rather than the current row set, closes it. See Vacuous Truth.
A skipped job. Jobs conditioned on a target branch or dependent on an earlier job report "skipping" rather than failing, and a skip looks like a pass at a glance.
A missing run. A pipeline can simply fail to be created for a push while sibling workflows fire normally, and no amount of waiting produces it.
A stale reference. A run computed against a merge preview that predates a recent merge tells you nothing about the current state.
See also6
Hand-picked in the note itself — the neighbours worth reading next.
Continuous Deployment
Automatically releasing every change that passes validation.
Version Control & Delivery9 connections
Coverage Gate
A build check that fails when coverage falls below a threshold, and what that pressure produces.
Testing & Verification14 connections
Merge Train
Validating changes against the state they will actually merge into, in order, rather than in isolation.
Version Control & Delivery9 connections
Trunk-Based Development
Everyone integrating into one shared branch continuously, with short-lived feature branches.
Version Control & Delivery12 connections
Branching Model
The convention governing what branches exist, what they mean, and how work reaches production.
Version Control & Delivery11 connections
Semantic Conflict
Two changes that merge cleanly and are incompatible in meaning.
Version Control & Delivery12 connections
Related2
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from16
Notes elsewhere in the wiki that reach for this one.
- Branching ModelVersion Control & Delivery
The convention governing what branches exist, what they mean, and how work reaches production.
- Continuous DeploymentVersion Control & Delivery
Automatically releasing every change that passes validation.
- Coverage GateTesting & Verification
A build check that fails when coverage falls below a threshold, and what that pressure produces.
- Documentation RotMethod
Documentation that has drifted from the system it describes, and is now worse than none.
- Feature FlagData & Content
A runtime switch that decouples shipping code from enabling behaviour.
- Merge ConflictVersion Control & Delivery
Overlapping changes that a merge cannot combine automatically, requiring a decision.
- Merge TrainVersion Control & Delivery
Validating changes against the state they will actually merge into, in order, rather than in isolation.
- Performance BudgetWeb Platform
A committed numeric ceiling on a page's cost, enforced automatically.
- Pull RequestVersion Control & Delivery
A proposal to merge a branch, carrying review, automated checks, and the discussion around it.
- RebaseVersion Control & Delivery
Replaying a branch's commits onto a new base, producing new commits with the same changes.
- Resource StarvationTesting & Verification
Failures caused by competition for a finite shared resource rather than by any defect.
- Semantic ConflictVersion Control & Delivery
Two changes that merge cleanly and are incompatible in meaning.
- Stacked Pull RequestsVersion Control & Delivery
A chain of dependent changes, each reviewed separately and merged in order.
- Three-Way MergeVersion Control & Delivery
Combining two lines of work by comparing both against their common ancestor.
- Trunk-Based DevelopmentVersion Control & Delivery
Everyone integrating into one shared branch continuously, with short-lived feature branches.
- Vacuous TruthMethod
A statement that holds only because its subject set is empty — a green result that measured nothing.