Bars of list cost for 100 deploys of a 10-minute build. Vercel Turbo $105, Render Performance $25, GitHub 8-core $22, Vercel Standard $14, Netlify $10, GitHub 2-core $6, Render Starter $0 inside its included minutes, Fly.io builders $0.

A push-to-deploy pipeline bills for its builds somewhere: per minute on a CI runner, per CPU minute on a platform, or per deploy. We took current prices from the vendors' own pages and worked out what 10, 50, 100 and 500 deploys a month cost at build lengths of 3 and 10 minutes.

Short version: for most small teams the build bill is tiny. 100 deploys of a 3-minute build come to $1.80 on GitHub's 2-core Linux runner, $4.20 on Vercel's Standard machine and nothing beyond the included minutes on Render's Pro plan. Machine size matters far more than deploy count: the same build on Vercel Turbo costs $31.50 if it takes as many minutes. Our own measured builds also showed that rounding up to the minute decides what a very short build costs.

The rates we used

VendorHow it billsPriceIncluded
GitHub ActionsPer minute, each job rounded up to a whole minuteLinux 2-core $0.006, 8-core $0.022, 16-core $0.042$12 a month on Free, $18 on Pro and Team, on private repositories. Standard runners are free on public ones
VercelBuild time rounded up to a minute, times CPUs, times $0.0035Basic $0.007, Standard $0.014, Enhanced $0.028, Turbo $0.105 a minuteBasic included on Hobby. Pro has $20 of usage credit, shared with everything else
RenderPipeline minutes, including pre-deploy commandsStarter tier (2 CPUs) $5 per 1,000. Performance tier (16 CPUs) $25 per 1,000Starter: Hobby 500, Pro 1,000, Scale 5,000 a month. Performance: none
Netlify15 credits per production deploy. Build minutes aren't countedAbout $0.10 a deploy on Pro, from 1,500 credits for $10Pro's 3,000 credits, shared with traffic and compute. Previews and branch deploys cost nothing
Fly.ioDepot and Fly buildersCurrently free, in its wordsNot applicable

A 3-minute build

List price per month. GitHub's included usage and Vercel's credit aren't taken off, because both are shared with other work. Render's included minutes are taken off, because they only cover pipeline minutes.

Where the build runs10 deploys50100500
GitHub Actions, Linux 2-core$0.18$0.90$1.80$9.00
GitHub Actions, Linux 8-core$0.66$3.30$6.60$33.00
Vercel, Basic (2 CPUs)$0.21$1.05$2.10$10.50
Vercel, Standard (4 CPUs)$0.42$2.10$4.20$21.00
Vercel, Turbo (30 CPUs)$3.15$15.75$31.50$157.50
Render Pro, Starter tier, after 1,000 included$0$0$0$2.50
Render Pro, Performance tier$0.75$3.75$7.50$37.50
Netlify Pro, per production deploy$1.00$5.00$10.00$50.00
Fly.io builders$0$0$0$0

A 10-minute build

Where the build runs10 deploys50100500
GitHub Actions, Linux 2-core$0.60$3.00$6.00$30.00
GitHub Actions, Linux 8-core$2.20$11.00$22.00$110.00
Vercel, Basic (2 CPUs)$0.70$3.50$7.00$35.00
Vercel, Standard (4 CPUs)$1.40$7.00$14.00$70.00
Vercel, Turbo (30 CPUs)$10.50$52.50$105.00$525.00
Render Pro, Starter tier, after 1,000 included$0$0$0$20.00
Render Pro, Performance tier$2.50$12.50$25.00$125.00
Netlify Pro, per production deploy$1.00$5.00$10.00$50.00
Fly.io builders$0$0$0$0

Comparing rows assumes the build takes the same minutes everywhere, and a 30-CPU machine won't take as long as a 2-core one if your build can use the extra cores. A bigger machine saves money only when it's faster by more than its price ratio: GitHub's 8-core costs 3.7 times the 2-core, so the build has to run 3.7 times as fast to cost the same. Many builds spend a good part of their time on network and single-threaded steps and won't get there, though you may still pay for the shorter wait.

Netlify's flat price flips the usual logic. It costs more than GitHub's 2-core per deploy for builds under about 17 minutes, and more than Vercel Standard for builds under about 7 minutes, and it's cheaper past those points. It also counts production deploys only, so frequent previews cost nothing on that line.

What our measured builds would be billed

We already had real timings from our buildpack and Dockerfile test, run on two small apps with 2 CPUs. This is what those build times become once a vendor rounds up to the minute. The last two columns add the first pull of the images, for a runner that starts empty each time and has no build cache, as many hosted CI runners do unless you set up caching.

App and pathRebuildBilledFirst build, images presentBilledEmpty runner, pull plus first buildBilled
Python, Dockerfile0.14 s1 min3.7 s1 min22 s1 min
Python, buildpack6.96 s1 min41.9 s1 min393 s7 min
Java, Dockerfile2.77 s1 min40.4 s1 min141 s3 min
Java, buildpack9.84 s1 min182.1 s4 min533 s9 min

With a working cache, every one of our rebuilds rounds to one minute, so the 7 s a buildpack adds costs nothing here. An empty runner is different: 100 deploys on GitHub's 2-core would cost $0.60 for the Python Dockerfile against $4.20 for the Python buildpack, and $1.80 against $5.40 on Java. That's a small sum, but it's also about six extra minutes of waiting on every deploy.

Treat that table as a guide to the shape of the bill. These times come from our Mac mini on our link, not from a vendor's machine, and a real CI job also spends time on checkout, setup, tests and pushing the image, which we didn't time. Those steps usually matter more than the build itself, and they're billed at the same rate.

Where a self-hosted runner pays off

Self-hosted runners are still free in GitHub Actions, since the planned $0.002 a minute charge was postponed. So the question is how many hosted minutes one server replaces. Here's a $20 a month server, which is our assumption, against GitHub's rates:

ReplacesMinutes for the same $2010-minute builds a month
Linux 2-core at $0.0063,333333
Linux 8-core at $0.02290991
Linux 16-core at $0.04247648

Against a 2-core runner you need around 333 ten-minute builds a month to cover the server, and that's before your own time patching it. The included $12 on a Free account pushes that further out. Most small teams never get there on price alone. The case gets better if you already pay for larger runners, need caches that stay on disk, or are building something with heavy dependencies where the warm disk saves real minutes.

Keep the risk in mind too: GitHub warns against self-hosted runners on public repositories, since a pull request can run code on your machine. And the postponed charge could still come back. At $0.002, 5,000 minutes a month would add $10.

What to do with this

If you pay under $5 a month for builds, leave them alone and spend the time elsewhere. If the bill has started to matter, look first at which machine type you're on, because that moves the price by as much as 15 times on Vercel. Then look at the minutes you're paying for: caching dependencies and skipping builds for changes that don't touch the app usually save more than moving vendors.

What this doesn't cover

These are list prices read on 4 November 2026, excluding tax, on the plans named. We didn't run a build on any of these vendors, so we can't say how fast each machine is. Render's pages don't say how it rounds a pipeline minute, so we used plain minutes. Plan fees, storage for images and artifacts, bandwidth and concurrency add-ons aren't in the tables. We left out Railway because we couldn't establish from its pages whether build CPU counts as usage. Build times from the earlier test are small apps on arm64 with other work running on the machine.

Related: Deploy platform price changes in 2026 dates the changes behind these rates, and Rebuild time when only your code changes shows how Dockerfile layers change rebuild time.

On systemi you send a zip or an https git URL and a branch, and we build and start the app in its own container.

See how deploys work