GitHub Actions vs Cloudflare Pages built-in builds: free tier CI minutes compared
If you're deploying a static site and deciding whether to let Cloudflare Pages build it directly or run the build in GitHub Actions and just push the output, the free-tier limits are different enough to matter once a project grows.
GitHub Actions free tier
- Public repositories: unlimited, free, on both personal and organization accounts — no minute cap at all.
- Private repositories (Free plan): 2,000 Linux minutes per month, plus 500MB of artifact storage. Minutes on macOS and Windows runners count against the same pool at a higher multiplier (macOS costs roughly 10x Linux minutes), so the same "2,000 minutes" disappears much faster if the workflow isn't running on Linux.
- Past the free allowance: roughly $0.006 per Linux minute pay-as-you-go (as of a January 2026 pricing cut that lowered hosted-runner rates), or a paid GitHub plan with a larger included pool (e.g. Team includes 3,000 minutes/month).
Cloudflare Pages built-in builds free tier
- 500 builds per month, full stop, regardless of how long each build takes or which repo visibility you're using — public and private repos are treated the same.
- No separate "minutes" metering the way GitHub Actions has — it's a build count limit, not a time budget.
The actual comparison
For a public repo, GitHub Actions is unlimited and free, which is strictly more generous than Cloudflare's 500-builds-per-month cap — if the project is public, running the build in Actions and having Cloudflare just serve the output removes the build-count limit entirely.
For a private repo, it's closer: 500 Cloudflare builds/month vs 2,000 GitHub Actions minutes/month. Whether that favors GitHub Actions depends entirely on how long each build takes — a project with builds under 4 minutes gets more total builds out of GitHub's minute pool than Cloudflare's flat 500-build cap; a project with longer builds (10+ minutes) burns through GitHub's 2,000 minutes faster and Cloudflare's flat count becomes the more generous option.
What actually matters for most small projects
500 builds a month is roughly 16 a day — for a personal site, blog, or small project publishing content on a schedule (even a few times a day), that ceiling essentially never gets hit in practice. The GitHub Actions vs Cloudflare-native-build decision usually ends up driven by something other than the free-tier limit: whether the build needs steps Cloudflare's native build environment doesn't support, or whether keeping build logic in a portable GitHub Actions workflow (rather than Cloudflare-specific config) matters for avoiding platform lock-in.
Sources: GitHub Actions billing documentation (public-repo unlimited minutes, private-repo 2,000 Linux minutes/month, January 2026 hosted-runner pricing cut); Cloudflare Pages pricing documentation (500 builds/month free tier, applies regardless of repo visibility).