Reference and Selective Reading
You do not need to read the source books or docs front-to-back for this module. Concept pages are the primary teacher. Open the chunks and external pages below only when you need alternate exposition or a deeper worked example.
Source Roles
| Source | Role | Why it is here |
|---|---|---|
| Official CI docs (GitHub Actions, GitLab CI) | Primary | Only authoritative source for YAML syntax and runner behavior |
| DORA research (dora.dev) | Primary | Empirical backing for the delivery stance of the module |
| Martin Fowler bliki / articles | Primary | Canonical short definitions for delivery, canary, blue-green, evodb |
| Semver / Keep a Changelog / Conventional Commits | Primary | Authoritative specs for versioning and release notes |
| SLSA / Sigstore | Primary | Supply-chain integrity and signing |
| Pro Git | Selective | Branching, tagging, and signing -- cluster 1 and 4 only |
| Git from the bottom up | Selective | Mental model for branches and rebase |
| The Linux Command Line | Background | Shell fluency for runner and release scripts; optional |
Read Only If Stuck
Delivery stance and branching (Cluster 1)
- Trunk-Based Development -- introduction
- Trunk-Based Development -- short-lived feature branches
- Martin Fowler: ContinuousDelivery
- DORA -- capabilities catalog
- Pro Git: Branch Management and Long-Running Branches
- Pro Git: Topic branches
- Pro Git: Distributed Git workflows
- Git from the bottom up: Branching and rebase
CI pipeline (Cluster 2)
- GitHub Actions -- Writing workflows
- GitHub Actions -- Workflow syntax
- GitHub Actions -- Storing and sharing workflow data
- GitLab CI -- Get started
- GitLab CI -- YAML keyword reference
- Martin Fowler: TestPyramid
- Martin Fowler: ContractTest
- Pact -- Consumer-driven contracts
CD pipeline (Cluster 3)
- Martin Fowler: BlueGreenDeployment
- Martin Fowler: CanaryRelease
- Kubernetes -- Deployments
- Argo Rollouts -- Canary
- Argo Rollouts -- BlueGreen
- Flagger -- docs
- Martin Fowler: FeatureToggle
- Pete Hodgson: Feature Toggles
- OpenFeature -- reference
- Google SRE Workbook: Canarying Releases
Release engineering (Cluster 4)
- Semantic Versioning 2.0.0
- Keep a Changelog 1.1.0
- Conventional Commits 1.0.0
- SLSA v1.0 specification
- Sigstore documentation
- in-toto
- Martin Fowler: Evolutionary Database Design (EvodB)
- Martin Fowler: ParallelChange
- Flyway documentation
- Liquibase -- concepts
- gh-ost -- online MySQL migration
- Pro Git: Tagging
- Pro Git: Listing tags, deleting tags, checking out tags
- Pro Git: Signing your work
Quality gates and safety (Cluster 5)
- GitHub Actions -- OIDC overview
- GitHub Actions -- Configuring OIDC for AWS
- GitHub Actions -- Using secrets
- GitHub Actions -- Managing environments
- GitLab -- OIDC / ID tokens
- GitLab -- Protected environments
- OWASP -- CI/CD Top 10
- DORA -- Streamlining change approval
- DORA -- Monitoring and observability capability
- Datadog -- CI Visibility
- Grafana -- Annotations API
- OpenTelemetry -- CI/CD semantic conventions
Optional Deep Dive
- Google -- Accelerate State of DevOps reports -- annual published research
- Jez Humble & Dave Farley -- Continuous Delivery -- book reference, the foundational text
- Forsgren, Humble, Kim -- Accelerate -- the book of DORA findings
- CNCF -- Progressive Delivery whitepaper -- CNCF framing
- The Update Framework (TUF) -- adjacent supply-chain spec
Concept-to-Source Map
| Primary concept | Best source if stuck | Why this source |
|---|---|---|
| Small, frequent, reversible changes | DORA -- Capabilities | Empirical case for the stance |
| Trunk-based vs GitFlow | Trunk-Based Development plus Pro Git: Branch Management | Canonical model, grounded in git semantics |
| Current DORA delivery metrics | DORA -- metrics guide and Quick Check | Current five-metric definitions, usage cautions, and current benchmarks |
| Build-once, promote-everywhere | GitHub Actions -- Storing and sharing workflow data | Implementation primitives for artifact promotion |
| Test strategy in CI | Martin Fowler: TestPyramid | Clearest short statement of layering |
| Pipeline as code | GitHub Actions -- Writing workflows and GitLab CI -- YAML reference | Authoritative YAML references |
| Deployment strategies | Martin Fowler: CanaryRelease and Argo Rollouts -- Canary | Concept + implementation |
| Feature flags and dark launches | Martin Fowler: FeatureToggle | Best classification of flag types |
| Progressive delivery and rollback | Google SRE Workbook: Canarying Releases | Operational detail on metric-gated rollouts |
| SemVer, changelogs, release notes | Semver.org + Keep a Changelog | Both canonical specs |
| Artifacts, registries, signing, provenance | SLSA v1.0 + Sigstore | Combined: what you claim and how you prove it |
| DB migrations alongside code | Martin Fowler: EvodB | Foundational article, still current |
| Pipeline security (OIDC + secrets) | GitHub Actions -- OIDC | Canonical |
| Environments and approvals | GitHub Actions -- Managing environments | Shows the full configuration surface |
| Observability in delivery | DORA -- Monitoring and observability | Frames observability as a delivery capability |