CI cost figures are vendor list prices verified May 2026. Actual cost depends on plan, concurrency, and discount terms. Some links are affiliate links. See disclosure.

Sources reviewed May 2026

Methodology and sources

How rates are sourced, how the external-runner shootout is constructed, the calculation framework for the cost calculator and break-even math, what is in scope and out of scope, the monthly refresh cadence, and the corrections process.

Vendor and reference sources

Every per-minute rate, free-tier number, and runner-shootout figure on this site traces back to one of the sources below. Industry-coverage sources (DORA, samexpert, northflank, blacksmith.sh, CNCF surveys, Forrester / Gartner) are cited only as supplementary context, never as primary rate sources.

SourceCadenceWhat we take

GitHub Actions

https://docs.github.com/billing/managing-billing-for-github-actions/about-billing-for-github-actions
MonthlyPer-OS per-minute rates (Linux x86 $0.008, Linux ARM $0.004, Windows $0.016, macOS $0.080 at 12-core), free-tier minutes per plan (Free 2,000, Team 3,000, Enterprise 50,000), and self-hosted runner billing rules. Sourced from GitHub's own billing docs, not third-party trackers.

GitLab CI

https://about.gitlab.com/pricing/
MonthlySaaS compute minute rates and free-tier compute minutes per plan, and the self-managed Community Edition (free, unlimited minutes on your own infra). Pricing is taken from the public GitLab.com pricing page, not enterprise quotes.

CircleCI

https://circleci.com/pricing/
MonthlyPlan tier prices and credit conversion: 1 credit = $0.0006. Default Medium Linux executor consumes 10 credits per minute, which is how the per-minute rate of $0.006/min is derived. CircleCI's resource-class table is the conversion authority.

Atlassian Bitbucket Pipelines

https://bitbucket.org/product/features/pipelines
QuarterlyAtlassian-bundled CI: per-user Standard / Premium tiers and bundled-minutes allowances. Pricing sourced from Atlassian's public Bitbucket Pipelines page.

AWS CodeBuild + CodePipeline

https://aws.amazon.com/codebuild/pricing/
Monthly (US East 1)Per-minute rates by instance size (Linux $0.005, ARM $0.004, Windows $0.020), per-second billing, and the 100 minutes/month free tier on general1.small. CodePipeline pricing taken from https://aws.amazon.com/codepipeline/pricing/. Rates quoted US East 1; other AWS regions can run 10 to 20 percent higher and are flagged on the page.

Azure Pipelines

https://azure.microsoft.com/en-us/pricing/details/devops/azure-devops-services/
MonthlyMicrosoft-hosted parallel-jobs pricing ($40/parallel job public; $52 private project), per-OS rate translation, and self-hosted (unlimited minutes) pricing. Sourced from Azure DevOps Services pricing page.

Google Cloud Build

https://cloud.google.com/build/pricing
MonthlyPer-build-minute rates by machine type (e2-medium $0.003/min, n1-highcpu-8 $0.016/min, n1-highcpu-32 $0.064/min). 120 free build-minutes per day. Sourced from Google Cloud Build's official pricing page.

JetBrains TeamCity

https://www.jetbrains.com/teamcity/buy/
On changeTeamCity Cloud per-month pricing per build agent + included build credits. Pricing for TeamCity On-Premises (perpetual licence + maintenance) sourced from JetBrains' commerce page.

Buildkite

https://buildkite.com/pricing
MonthlyPer-user orchestration fees, free agent count, and the orchestration-only billing model (compute is your own infrastructure). Buildkite's pricing model is distinct from minute-based vendors and is treated separately in comparisons.

GoCD

https://www.gocd.org/
On changeFree open-source CI software. No per-minute charge from the vendor. Cost is pure infrastructure, sourced from public Hetzner / DigitalOcean / AWS EC2 pricing pages.

Jenkins (community)

https://www.jenkins.io/
On changeFree open-source CI software. Infrastructure cost references taken from AWS EC2 on-demand pricing (https://aws.amazon.com/ec2/pricing/). Maintenance-hours range ($75/h loaded) is a published industry range from DORA State of DevOps reports and engineering-blog post-mortems.

Depot

https://depot.dev/pricing
MonthlyDepot CI runners pricing pulled from depot.dev/pricing. Linux x86 $0.004/min, Linux ARM $0.002/min, macOS $0.040/min, minimum $50/month commit. SOC 2 Type II attestation is verified from Depot's public trust centre.

Namespace

https://namespace.so/pricing
MonthlyNamespace Workloads pricing for Linux x86 / ARM build runners. Sourced from namespace.so/pricing. Free tier and per-minute rates verified each cycle.

BuildJet

https://buildjet.com/for-github-actions
MonthlyBuildJet for GitHub Actions per-minute pricing. Sourced from buildjet.com. Linux x86 $0.003/min, Linux ARM $0.002/min, no minimum commit.

Blacksmith

https://blacksmith.sh/pricing
MonthlyBlacksmith CI runner pricing. Sourced from blacksmith.sh. Linux x86 $0.004/min, Linux ARM $0.002/min, free tier available. Industry-coverage references also sourced from blacksmith.sh's engineering blog.

Ubicloud

https://www.ubicloud.com/pricing
MonthlyOpen-source-underpinning CI runner pricing. Sourced from ubicloud.com/pricing. Linux x86 $0.004/min, Linux ARM $0.002/min, no minimum commit. Listed as non-affiliate.

RunsOn

https://runs-on.com/pricing/
MonthlyManaged control plane for self-hosted GitHub Actions on AWS. Per-month per-organisation fee + your AWS spot/on-demand cost. Sourced from runs-on.com/pricing.

AWS EC2 (self-hosted reference)

https://aws.amazon.com/ec2/pricing/
MonthlySelf-hosted runner break-even math uses t3.medium ($30/month US East 1 on-demand) as the reference instance. Spot, savings plan, and reserved capacity are explicitly out of scope to keep the comparison apples-to-apples against published cloud-CI per-minute rates.

Industry CI/CD economics coverage

https://samexpert.com/
On changeIndustry-analyst and engineering-blog coverage cited for cross-checking vendor pricing pivots and self-hosted economics: samexpert.com (GitHub Actions billing analysis), northflank.com (managed runners economics), blacksmith.sh engineering blog (external-runner cost analyses). Cited as supplementary, never as a primary rate source.

DORA State of DevOps + industry surveys

https://dora.dev/research/
AnnualDORA (DevOps Research and Assessment) State of DevOps reports for DevOps practice benchmarks, deployment frequency norms, and maintenance-hours range for self-hosted CI. CNCF Cloud Native developer survey for adoption trends. Forrester / Gartner CI/CD market sizing for context, not for individual vendor rates.

In scope

  • Published vendor list prices for cloud-hosted CI minute rates and per-user fees.
  • Free-tier and bundled-minute allowances per vendor plan.
  • OS and resource-class multipliers and their per-minute rate translations.
  • ARM-multiplier savings on GitHub-hosted Linux runners and external-runner ARM parity.
  • External-runner-provider list prices: Depot, Namespace, BuildJet, Blacksmith, Ubicloud, RunsOn.
  • Self-hosted runner break-even math against GitHub-hosted minutes using public AWS EC2 on-demand pricing.
  • Per-team CI cost attribution recipes using the GitHub Actions usage API, OIDC claims, and FinOps rollup tools.
  • Optimisation playbook for caching, sharding, paths filtering, concurrency gates, Docker layer caching, monorepo affected-only logic.

Out of scope

  • Enterprise-negotiated pricing and sales-led tiers (CircleCI Scale, GitLab Ultimate volume discounts, GitHub Enterprise Server site licensing).
  • AWS spot, savings-plan, and reserved-instance discounts (excluded from self-hosted break-even to keep the comparison apples-to-apples).
  • Regional surcharges (rates quoted assume US East 1 where AWS is the reference).
  • Compliance add-ons (GitHub Advanced Security, GitLab Premium audit log, vendor-specific compliance bundles).
  • Internal loaded-rate estimates for engineering maintenance time (a published industry range is used instead).
  • Cold-start and benchmark numbers are point-in-time and depend on cache state, image warm-up, and vendor capacity.

Calculation framework

Build-minute counting

A build minute is wall-clock time from runner pick-up to job completion. Parallel jobs each count: a 5-minute workflow with 4 parallel jobs consumes 20 build minutes. Matrix entries each count separately. Idle time between jobs is not billed by hosted vendors but is billed by self-hosted EC2.

OS multiplier handling

GitHub Actions: Linux x86 = 1x, Linux ARM = 0.5x, Windows = 2x, macOS = 10x. Included minutes are Linux x1 equivalent: a 3-minute macOS job depletes 30 of your monthly allowance. GitLab CI has no multipliers (one rate across OSes). CircleCI uses resource-class credit multipliers (Medium Linux = 10 credits/min). Each platform's multiplier table is shown on the platform page.

ARM multiplier (GitHub Actions)

GitHub-hosted Linux ARM runners bill at 0.5x the Linux x86 rate ($0.004/min vs $0.008/min) since 2024. The arm-runners page documents the migration YAML, performance benchmarks across Node.js / Python / Go / Rust / Java / Ruby, and the legacy-C++ / Chromium-based-E2E gotcha. ARM-rate parity holds on Depot, BuildJet, Blacksmith, Namespace, and Ubicloud at $0.002/min.

Self-hosted break-even

Formula: monthly minutes * GitHub-hosted rate = total monthly billed cost cap. Compared against: EC2 instance cost + self-hosted platform fee + engineering maintenance time (industry-cited 2 hours/month at $130 fully-loaded hour). Worked example for 25,000 min/mo at GitHub Actions Linux x86 rates shown on /self-hosted-runners.

External-runner shootout scoring

Six providers (Depot, Namespace, BuildJet, Blacksmith, Ubicloud, RunsOn) scored on identical axes: Linux x86 per-minute rate, Linux ARM per-minute rate, macOS support, cold start (seconds), cache mechanism (built-in / actions/cache compatible / limited), setup time (minutes), minimum commit (none / free tier / $X/month). Best and worst values per column are colour-coded. No provider is given preferential ordering or row position.

Free-tier handling

GitHub Actions 2,000 min/mo (Free), 3,000 (Team), 50,000 (Enterprise). GitLab CI 400 min/mo (Free). CircleCI 6,000 credits/mo. Azure DevOps 1,800 min/mo. AWS CodeBuild 100 min/mo. Free-tier exhaustion math (when does the next minute become billable) is part of the calculator's modelling.

Refresh cadence

Vendor pricing pages are re-verified on the first business week of each month. The verification date is held in a single LAST_VERIFIED_DATE constant imported by every page. Footer text, schema dateModified, and visible badges all read from that single source so cosmetic refreshes are not possible: rolling the constant forward updates every freshness indicator on the site by construction.

Out-of-cycle refresh triggers (we update sooner than the monthly cycle if any of these change):

  • Vendor announces a list-price change on Linux, ARM, Windows, or macOS rates.
  • A new external runner provider enters the shootout matrix.
  • GitHub Actions, GitLab CI, or CircleCI change their billing model (e.g., self-hosted platform fee, multiplier change, credit conversion).
  • A published case study (DORA, engineering-blog) materially changes the maintenance-hours range used in self-hosted break-even.
  • A reader emails a correction (see corrections section below).

Limitations

  • Calculator outputs are estimates. Production billing depends on enterprise agreements, regional surcharges, reserved-capacity commitments, and OS-mix particulars not covered here.
  • Vendor pricing pages drift between verification cycles. Where a rate has changed since the LAST_VERIFIED date stamp, we publish the new number with a single-source roll, not silently in place.
  • Cold-start, cache, and benchmark numbers in the runner shootout are vendor-published or independently measured at a single point in time. Real-world latency depends on geography, runner image warm-up, and provider capacity.
  • Self-hosted maintenance-hours estimates are a published range (DORA, engineering-blog post-mortems), not a point estimate. Both ends of the range are shown.
  • Affiliate participation is disclosed on every page. Affiliate links do not change ranking, pricing accuracy, or what we recommend.

Corrections process

Spotted a stale rate, a missing tier, a runner provider we have not covered yet, or a vendor change we have not caught? Email [email protected] with the page URL and the source you would like cited. Substantive corrections are typically actioned within five business days. The corrections log is kept in the site source under /about with a permanent disclosures section.

Updated 2026-05-11