Calculate GitLab CI compute minutes and monthly cost for any machine size. Compare SaaS runners vs self-hosted, and see how GitLab compares to GitHub Actions.
GitLab Plan
Runner Type
Use self-hosted runners
$0 compute minutes — unlimited builds
Self-hosted runners consume zero compute minutes. Unlimited builds at no GitLab cost. You only pay for your own infrastructure.
Job Configuration
10 min
115304560
10 / day
1255075100
1 job
15101520
Parallel jobs multiply compute minutes linearly.
22 days
Runs in your browser. No data stored.
Self-Hosted Runners — Zero Compute Minutes
Self-hosted runners do not consume any GitLab compute minutes quota. You can run unlimited jobs without any GitLab billing. The only cost is your own infrastructure — typically $20-60/month for a basic server that handles most teams.
GitLab compute cost
$0.00
Typical server cost
~$30/mo
Compute minutes used
Unlimited
Compute Minutes Summary
Linux Small
Per Job
0 min
Monthly Minutes
0
Monthly Cost
$0.00
Yearly Cost
$0.00
Free quota usage
0 / 400 minutes
Real job minutes0 min
After cost factor (1x)0 min
Overage minutes0 min
Cost factor
1x (Linux small)
Days until quota empty
30+
Total jobs/month
0
Overage cost
$0.00
Within free quota
Your pipeline fits within the free quota this month.
macOS 6x Cost Factor Active
macOS runners consume 6 compute minutes for every 1 real minute of execution. Your 0 real minutes = 0 compute minutes. On the Premium plan (10,000 quota) only 27 real hours of macOS builds are available per month.
All Machine Sizes — Monthly Compute Minutes
GitLab CI vs GitHub Actions — Same Workflow
GitLab CI
$0.00
per month
$0.010/min — no OS multiplier
GitHub Actions Pro
$0.00
per month (incl. $4 plan)
$0.006/min Linux—
GitLab charges flat $0.010/min for all OSes — no multipliers. GitHub charges 1x/2x/10x for Linux/Windows/macOS.
Optimization Tips — Reduce Compute Minutes
Switch to self-hosted runnersUnlimited builds
Self-hosted runners consume zero quota. A basic EC2 t3.medium costs ~$30/month and handles most team CI workloads without any quota limits.
# .gitlab-ci.yml
build:
tags:
- self-hosted # your runner tag
Use smaller machine sizeSave 50-91%
Switching from 2XLarge (12x factor) to Small (1x factor) uses 12x fewer compute minutes for the same real job duration. Only upgrade when your build is actually CPU or memory constrained.
Overage rate: $10 per 1,000 minutes = $0.010/min for all machine types.
Frequently Asked Questions
GitLab CI uses compute minutes as its billing unit. Each minute of job execution consumes compute minutes from your quota, but the number consumed depends on your machine size cost factor. A 10-minute job on a Small runner (1x factor) uses 10 compute minutes. The same job on an XLarge runner (6x factor) uses 60 compute minutes. The overage rate is $10 per 1,000 extra minutes ($0.010/min) and applies uniformly across all machine types and operating systems.
It depends on your OS mix. For Linux-only pipelines, GitHub Actions Pro ($0.006/min) is slightly cheaper than GitLab Premium ($0.010/min overage) per minute. However GitLab gives 10,000 free minutes vs GitHub's 3,000. For macOS pipelines, GitLab wins decisively — GitLab charges the same flat $0.010/min for macOS while GitHub charges $0.048/min with a 10x minute multiplier. If your team runs macOS builds regularly, GitLab is significantly cheaper.
Self-hosted runners consume zero GitLab compute minutes — you can run unlimited builds. The trade-off is you manage the infrastructure yourself. A basic EC2 t3.medium instance ($30-40/month) handles most team CI workloads. If your team runs more than 3,000 compute minutes per month beyond the free tier, self-hosted runners are almost always more cost-effective. GitLab makes registration straightforward with a single docker run command.
The cost factor reflects the relative cost of different machine sizes. A Small Linux runner has a 1x factor — 1 real minute equals 1 compute minute consumed. A 2XLarge runner has a 12x factor — 1 real minute equals 12 compute minutes consumed. This means upgrading from Small to 2XLarge consumes 12x more of your quota for the same pipeline, even though the pipeline wall-clock time may be shorter because of more CPU cores available.
Plan-included compute minutes (Free 400, Premium 10,000, Ultimate 50,000) reset every month and do not roll over. However, extra compute minutes purchased separately ($10 per 1,000) are valid for 12 months and can roll over month-to-month within that year. This means if you buy extra minutes at the end of a busy month, they carry forward for the next 12 months.