Skip to content

docs(ci): record the decisions that bring CI spending under budget - #1416

Draft
auxesis wants to merge 3 commits into
mainfrom
docs/ci-cost-decisions
Draft

auxesis wants to merge 3 commits into
mainfrom
docs/ci-cost-decisions

Conversation

@auxesis

@auxesis auxesis commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

CI for this repository cost about $4,000 a month on Blacksmith runners at the pace of October 2026. The budget is $1,000 a month, shared with other repositories. This pull request records how we plan to get under it, in two decision records and a glossary. It changes no code.

Changes

  • ADR 0002: light jobs move to GitHub-hosted runners. Those runners cost nothing for this public repository. Heavy jobs move to RunsOn. RunsOn starts a machine in our own AWS account for each job.
  • ADR 0003: checks split into push checks and gate checks. Push checks run on every push to a pull request. Gate checks are the expensive ones. They run once, in merge queues on main and next.
  • .github/CONTEXT.md: a glossary of the CI terms the two records use, such as "selector job", "summary job", and "early run".
  • CONTEXT-MAP.md: a link to the new glossary.

Verification

No check covers these files, because they are documents only. The pull request stacked on this one passes pnpm run test:scripts with these files in its tree.

Related

Review notes

  • The figures come from Blacksmith's and GitHub's billing reports for October 2026, and from the job records in GitHub's API.
  • Nothing here takes effect until the follow-up pull requests land.

@changeset-bot

changeset-bot Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 5ca9913

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

CI for this repository cost about $4,000 a month on Blacksmith at the
pace of October 2026. The budget for this repository and the others
that share it is $1,000 a month.

ADR 0002 moves light jobs to GitHub-hosted runners and heavy jobs to
RunsOn machines in our own AWS account. ADR 0003 runs the expensive
checks once, in merge queues on main and next, not on every push.
The glossary at .github/CONTEXT.md defines the terms both records use.
CONTEXT-MAP.md links to it.
Some jobs must run on arm64, such as native arm64 image builds. They now
run on RunsOn's arm64 machines. Every other heavy job stays on x64.

With RunsOn, a pull request from a fork would run its code in our AWS
account. The repository now requires approval before any outside
contributor's workflows run.
A merge queue test on 28 October 2026 settled four questions in ADR
0003. Queue commits pass the signed-commit rule. A queue commit's
parent is the entry ahead of it. GitHub does not cancel a run when its
entry leaves the queue.

The fourth result changed the design. A run started by a label can
replace an earlier failed result. So every label run now selects the
push checks again, and gives fresh results.

ADR 0002 now records that RunsOn jobs log in to Docker Hub. Docker Hub
limits anonymous pulls per address, and all RunsOn machines share one.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant