We’ve all been there. You want to ensure your open-source library or SaaS works across all operating systems, so you proudly write this beautiful, innocent-looking matrix strategy in your .github/workflows/ci.yml:
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
Looks harmless, right?
What GitHub’s documentation buries in the fine print is the Runner Multiplier Tax.
While Ubuntu runs at the base rate ($0.008/min), Windows costs 2x more, and macOS costs a staggering 10x more ($0.080/min).
If your test suite takes 15 minutes to run, that single macos-latest line just cost you $1.20 per run. If you have a team pushing 10 commits a day, you are burning hundreds of dollars on macOS runners for code that probably only needed Linux testing.
The Problem: Bill Shock is a lagging indicator
By the time you see the GitHub billing dashboard at the end of the month, the damage is already done. I wanted a way to see the exact cost before I committed the YAML.
But here is the catch: No sane developer is going to paste their company’s proprietary CI/CD infrastructure code into a random third-party website.
The Solution: A 100% Client-Side Cost Calculator
I decided to build a standalone web tool to solve this: GitHub Actions Cost Calculator.
Instead of building a backend that ingests and stores your YAML (which is a massive security red flag), I built the entire parsing engine to run locally in your browser.
Here is how the architecture works:
-
Zero Server Dependency: You paste your YAML, and a client-side JS parser breaks down the jobs, steps, and
runs-onvariables. - The 10x Exposer: It immediately splits the cost projection side-by-side (Ubuntu vs. Windows vs. macOS), exposing exactly how much that matrix strategy is costing you per day/month/year.
-
AI Optimization: It runs a quick heuristic check to suggest caching (
actions/cache) and runner downgrades to slash the bill by up to 60%.
Because everything happens in your browser DOM, your YAML is never stored, logged, or sent to a database. ### Test your heaviest workflow
If you are managing CI/CD for your team, I challenge you to drop your heaviest, most complex workflow file into the calculator. You might be surprised by how much that one macOS job is silently eating your budget.
Try it out here (no signup required): www.githubactionscost.online
I'm a solo dev building this out, so if you find any edge cases with complex matrix arrays or reusable workflows that the parser misses, let me know in the comments! How do you guys currently monitor your Actions billing?
Top comments (0)