GitHub Actions on a public repository
- Free allowance
- Standard GitHub-hosted runners are free with no minute cap on a public repository; 20 concurrent jobs on Free; 6 hours per job
- Verdict
- ★ qualifiesusable as stated; the read path was probed
- Cost
- free tier
- Identity
- emailno card, no phone
- Binding limit
- per-object-cap6 hours per job; 35 days per workflow run; 256 jobs per matrix; a 500 KB workflow file; 10 GB of cache per repository, evicted oldest-first beyond it
- Evidence
- documented5 sources; a first-party page was read and the sentence quoted
- Freshness
- stale on 2026-11-23checked 2026-10-23 (live); stale on 2026-11-23
| Free tier | standard GitHub-hosted runners are free with no minute cap on a public repository; 20 concurrent jobs on Free; 6 hours per job unit unlimited; metered on wall-clock |
|---|---|
| Price | none stated |
| Limits |
100 workflow runs may queue per concurrency group; cache uploads are 200 a minute and downloads 1,500 a minute per repository; in a public repository a scheduled workflow is automatically disabled when the repository has no activity for 60 days (docs.github.com/en/actions/how-tos/manage-workflow-runs/disable-and-enable-workflows) |
| Identity | email a GitHub account; no card for a public repository |
| Egress | no egress charge on the runner; artifact storage is capped at 500 MB on Free and shared with GitHub Packages free allowance: 500 MB artifact and package storage |
| Per-object cap | 6 hours of execution per job on a GitHub-hosted runner; 35 days per workflow run including waiting and approval; 256 jobs per matrix per run; a 500 KB workflow file |
| Retention | artifacts and logs are kept 90 days by default and configurable per repository; the runner is destroyed at the end of the job (90 days) |
| Interface | git, cli a workflow YAML in .github/workflows, triggered by a push, a schedule, a pull request or a repository dispatch; the runner is a shell with a network |
| Tooling | the runner image is Ubuntu 24.04 with 4 vCPU, 16 GB RAM and 14 GB SSD; any package manager, any compiler, docker buildx |
| Composes with | free compute whose output has to leave immediately: artifacts are 500 MB, GHCR is 500 MB, and the cache evicts at 7 days. R2's 10 GB free tier is the join that makes the chain storable |
| Reliability | the repository, its workflows and its logs are public, which is a technical property of the free tier and not a policy question |
| Notes | Unlimited minutes is true and it is not the number that decides anything. The capacity is the 20-slot concurrency: 20 slots x 24 h is 480 runner-hours a day, which is the flow ceiling, and the 120 runner-hours the slots hold at one instant is a stock and not a rate. Minutes are not scarce; a single job that runs longer than six hours is impossible. A 256-job matrix at the six-hour ceiling is 1,536 runner-hours, or thirteen waves of 20 and 78 hours of wall clock. |
| Evidence note | documented the billing and limits pages were read and state both the unlimited public minutes and each cap. |
| Parsed numbers |
|
Evidence 5
| date | source | what it proved |
|---|---|---|
| 2026-10-22 | docs.github.com/en/billing/concepts/product-billing/github-a | 'GitHub Actions usage is free for self-hosted runners and for public repositories that use standard GitHub-hosted runners'; 'Larger runners are always charged for, even when used by public repositories' |
| 2026-10-22 | docs.github.com/en/actions/reference/limits | Job execution time 6 hours on GitHub-hosted and 5 days self-hosted; 35 days per workflow run; 256 jobs per matrix per run; 500 KB workflow file; 20 concurrent jobs on Free and 5 macOS; 500 MB artifact storage, 2,000 minutes and 10 GB cache per repository on Free |
| 2026-10-22 | docs.github.com/en/actions/reference/runners/github-hosted-r | ubuntu-latest is 4 vCPU, 16 GB RAM, 14 GB SSD; ubuntu-slim is 1 vCPU and 5 GB |
| 2026-10-22 | docs.github.com/en/actions/reference/workflows-and-actions/d | 10 GB per repository by default; any cache entry not accessed in over 7 days is removed; beyond the limit the oldest entries are evicted |
| 2026-10-22 | docs.github.com/en/actions/how-tos/manage-workflow-runs/remo | 'By default, GitHub stores build logs and artifacts for 90 days' |