From 11f7995a31d8a29dc5214d6888ac5c11ba7f941b Mon Sep 17 00:00:00 2001 From: "shoney.arickathil" Date: Tue, 25 Aug 2026 05:23:33 +0200 Subject: [PATCH] docs(releasing): what the hosted runner costs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - public repos: standard runners free, unlimited minutes; only larger (4-core+) runners bill there and this workflow does not use one - private: included minutes per plan, then per-minute; Linux x1 vs Windows x2 / macOS x10; each job rounds up to the next minute - sized from a measurement: cold mkdist.sh is 3.4s on 20 cores, so under a minute on a 2-core runner — setup-ocaml dominates, ~3-10 min per release, and it only runs on a tag - release assets do not count against Actions artifact storage - flags that rates drift; check the billing page Co-Authored-By: Claude Opus 5 (1M context) --- docs/guides/releasing.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/guides/releasing.md b/docs/guides/releasing.md index 9f3c5cc..c71583a 100644 --- a/docs/guides/releasing.md +++ b/docs/guides/releasing.md @@ -98,6 +98,28 @@ Known first-run risks, in the order they are likely to bite: runners, absent in slim containers); and a 403 on publish, which is step 4. +## What the hosted runner costs + +**Public repository: nothing.** Standard GitHub-hosted runners are free +with unlimited minutes on public repos. Only *larger* runners (4-core +and up) are billed there, and this workflow does not ask for one. + +**Private repository:** each plan includes monthly minutes — 2,000 on +Free, 3,000 on Pro and Team, 50,000 on Enterprise Cloud — then bills +per minute. Linux counts ×1, Windows ×2, macOS ×10, so staying on Linux +is also the cheap choice. Each *job* is rounded up to the next minute. + +This job is small either way. A cold `scripts/mkdist.sh` measured 3.4s +on a 20-core workstation; on a 2-core runner call it well under a +minute. The real cost is `ocaml/setup-ocaml`, which is minutes cold and +under one when its opam cache hits — so budget roughly 3–10 minutes per +release, and it only ever runs on a tag. Ten releases a month is a +couple of percent of the smallest free allowance. + +Release assets do **not** count against Actions artifact storage; they +live with the release. (Rates and allowances change — check the current +billing page before making a decision that depends on them.) + ## Why the release job is NOT on a self-hosted runner A self-hosted runner would work — it needs no inbound ports, polls