DEV Community

Cover image for CI/CD Pricing in 2026: Why Your Seats Cost More Than Your Builds
Moksh Gupta
Moksh Gupta

Posted on Originally published at devtoollab.com

CI/CD Pricing in 2026: Why Your Seats Cost More Than Your Builds

Pick a CI platform on features and you will end up comparing four YAML dialects that all do roughly the same thing. Pick one on its billing model and the differences get sharp fast, because these vendors do not meter the same units. One charges you per build minute, one per credit, one per seat with the compute thrown back at you.

I dug through every vendor's published rates for a longer writeup on DevToolLab, Best CI/CD Tools in 2026. This is the condensed version: what the meters actually cost, and which open-source engines skip them entirely.

The Fee That Got Walked Back

December 15, 2025 is the date to remember. GitHub said it would start charging $0.002 a minute as an Actions "cloud platform" fee on private-repo workflows, and critically that included jobs on runners you host and pay a cloud provider for yourself. Developers pushed back hard, and GitHub shelved the self-hosted portion within a couple of days. The hosted-runner discount survived and took effect January 1, 2026, cutting net prices by as much as 39 percent.

Read that sequence carefully, because it tells you where the industry is heading. Raw compute is commoditizing. The orchestration layer sitting on top of it is what vendors now want to bill for. GitHub called the pause a re-evaluation rather than a cancellation, so anyone running a big self-hosted fleet should treat that fee as deferred, not dead.

Nobody Has Standardized

JetBrains surveyed developers for its State of Developer Ecosystem 2025 and found GitHub Actions at 33 percent inside organizations, Jenkins at 28 percent, and GitLab CI at 19 percent. A further 18 percent reported no CI/CD tooling at all. Their follow-up State of CI/CD survey, 805 respondents, found roughly a third of organizations running two CI systems side by side.

Jenkins holding second place is the surprise. It dates to 2011, runs on the JVM, and carries 2,102 plugins in its update center. It survives because nothing about it counts your seats or your minutes.

One Workload, Four Meters

Rather than trust marketing pages, price a single realistic month against each vendor: ten active developers, twelve thousand Linux build minutes.

// Same workload, four billing models. Rates from vendor pricing pages,
// September 2026. Assumes GitHub Team seats, CircleCI Docker medium
// (10 credits/min), Buildkite 2-vCPU agents.
const devs = 10, minutes = 12000;

const plans = [
  // name,                base, freeSeats, perSeat, freeMin, $/min
  ['GitHub Actions',         0,         0,       4,    3000, 0.006],
  ['GitLab Premium',         0,         0,      29,   10000, 0.010],
  ['CircleCI Performance',  15,         5,      15,    3000, 0.006],
  ['Buildkite Pro',          0,         0,      30,    2000, 0.008],
];

for (const [name, base, free, perSeat, freeMin, rate] of plans) {
  const seats = base + Math.max(0, devs - free) * perSeat;
  const compute = Math.max(0, minutes - freeMin) * rate;
  console.log(`${name.padEnd(22)} $${seats} seats + $${compute} compute`);
}
Enter fullscreen mode Exit fullscreen mode
$ node ci-cost.mjs
GitHub Actions         $40 seats + $54 compute
GitLab Premium         $290 seats + $20 compute
CircleCI Performance   $90 seats + $54 compute
Buildkite Pro          $300 seats + $80 compute
Enter fullscreen mode Exit fullscreen mode

Totals: $94, $310, $144 and $380 a month. Look at which column carries the weight. Compute never breaks $80 anywhere, while seats swing by a factor of seven. GitLab and Buildkite bundle far more than a build runner into that seat, so this is not a fair feature comparison, but it does tell you which number to audit first when finance asks about the CI line.

The Four You Pay For

GitHub Actions wins on being already installed. Free tiers get 2,000 private-repo minutes monthly, Pro and Team 3,000, Enterprise Cloud 50,000, and public repos run free on standard runners. Post-January rates: $0.006 a minute for 2-core Linux x64, $0.005 arm64, $0.010 Windows, $0.062 macOS. Storage bites quietly. Artifacts run $0.25 per GB-month and cache runs $0.07 beyond a free 10 GB per repository.

GitHub Actions product page showing a matrix build and deploy workflow

GitLab CI/CD ships as one slice of a much larger platform. Free grants 400 compute minutes and five users per top-level group. Premium runs $29 per user monthly on an annual term with 10,000 minutes; Ultimate switched to quote-only pricing this year and includes 50,000. Overflow minutes are $10 per thousand as a one-off purchase. The detail worth stealing sits in GitLab's FAQ: your own runners never consume the quota and have no cap, on every tier including Free.

CircleCI denominates everything in credits, so translation is mandatory before you can budget. Docker small costs 5 credits a minute, medium 10, large 20. Linux VM pricing varies by generation, with the default x86 medium at 10 and Gen 3 medium at 7. macOS M4 Pro medium sits at 200 credits a minute, which puts an iOS build around forty times a comparable Linux job. The free allotment is real though: 30,000 credits, five users, 30x concurrency.

CircleCI homepage with the tagline Validate everything, assume nothing

Buildkite splits the job. Their servers handle scheduling, logs, secrets and the interface; your machines execute the work. Free covers five users and 2,000 Linux vCPU-minutes. Pro is $30 per active user monthly for up to fifty users, ten agents included and $3.50 for each one after. Optional managed agents cost $0.004 per vCPU-minute on Linux, so a 2-vCPU box lands at $0.008 of wall-clock time. Agents you own incur no per-minute charge whatsoever.

The Four You Host

Jenkins remains MIT-licensed with 26.5k stars and LTS 2.568.2 as of August 5, 2026. Java 21 is mandatory from the 2.555 line forward. There is no meter and no seat count, and in exchange you own a controller, a JVM and a plugin dependency graph that turns into a part-time job somewhere past two hundred plugins. Reach for it when build steps refuse to containerize or when hardware legally cannot leave your premises.

Semaphore Community Edition is the newest option worth attention, because Semaphore released its engine under Apache 2.0. Self-hosted means unlimited users and unlimited concurrency, with artifacts, test dashboards and flaky-test detection in the box. Two things to know: the ee directory carries a separate Enterprise license covering SAML, RBAC and audit logs, and the newest tag is v1.5.0 from October 10, 2025 even though main gets daily commits. Pin your version. Their cloud offering charges $0.0075 a minute for 2-vCPU x64 with no seat fee at all.

Semaphore Open Source page comparing Community Edition against Enterprise

Woodpecker CI split off from Drone back in 2021 when a licensing change clamped down on self-hosting. It is Apache 2.0, sits at 7.8k stars, and shipped v3.18.0 on August 24, 2026. Architecture is a Go server plus agents, every step is a container, and it speaks GitHub, GitLab, Gitea, Forgejo and Bitbucket. Expect no hosted tier, no test analytics, and plugins numbering in the dozens rather than thousands.

Argo CD belongs in a different column entirely. It is a CNCF graduated GitOps reconciler that syncs a cluster against a Git repo, so it substitutes for your deploy stage, not your build stage. CNCF's July 2025 end user survey put it in nearly 60 percent of Kubernetes clusters doing application delivery, with 97 percent of respondents running it in production and an NPS of 79. Currently v3.5.2. Treat CI selection and CD selection as two separate calls.

Quick Comparison

Tool Meter Starting point License
GitHub Actions Seats plus minutes 2,000 free min, $0.006/min after Proprietary
GitLab CI/CD Seats plus minutes 400 free min, Premium $29/user Open core
CircleCI Seats plus credits 30,000 free credits, $15/mo up Proprietary
Buildkite Seats, you supply agents 5 free users, Pro $30/user Proprietary
Jenkins None Free MIT
Semaphore CE None self-hosted Free, cloud $0.0075/min Apache 2.0, open core
Woodpecker None Free Apache 2.0
Argo CD None, CD only Free Apache 2.0

Picking One

Start with two numbers off last month's invoice: build minutes consumed and humans who actually committed. Feed them through the script above. Where seats dominate, hunting a lower per-minute rate is wasted effort.

Confirm the macOS multiplier before committing if you ship mobile, since that single line dwarfs everything else on both CircleCI and GitHub. Ask each vendor what bringing your own runners costs, because the answers genuinely differ: GitLab meters nothing, Buildkite charges no per-minute fee, GitHub charges nothing today with a caveat attached. Then trial on your slowest genuine pipeline instead of a toy repo, and time it with caches cold.

Keep the definition portable while you are at it. Containerized steps and plain shell survive a migration; vendor orbs, marketplace actions and Groovy pipelines do not. Two utilities that help around the edges: Dockerfile Linter for catching image build waste before a runner bills you for it, and JWT Decoder for checking the OIDC token your pipeline swaps for cloud credentials.

The full breakdown, with per-vendor screenshots, the complete credit tables and the reasoning behind each recommendation, lives in the original post on DevToolLab.

References

Top comments (0)