Theory
Theory: CI is a Function from Git Events to Jobs
A webhook or native parser turns a ref movement into a graph of jobs. Runners are the computers. GitOps later inverts this: the cluster pulls desired state from Git.
Invariants
- Webhooks are the universal outbound event.
- Native CI (Actions, GitLab CI, Gitea Actions) stores YAML in Git.
- External CI (Jenkins, Drone) stores jobs elsewhere, triggered by Git.
- Runners expand horizontally; the control plane does not always.
push/PR → event → pipeline YAML → queue → runner → status back to forge
What can break
- Untrusted PRs on privileged runners (injection).
How to read this chapter
Webhooks, native, external, runners, GitOps preview.