Article

Free CI/CD Pipeline Tiers Compared (2026)

GitHub Actions, GitLab CI, CircleCI, Azure DevOps, and 18 other CI/CD, mobile-build, and pipeline-check tools - the exact free minutes, credits, and job limits each one gives you, checked against each vendor's own pricing page.

By 7 min read

TL;DR: GitHub Actions gives every public repository unmetered CI/CD minutes - the 2,000-minutes-a-month figure only applies once a repo goes private. GitLab includes 400 compute minutes a month on its Free tier, CircleCI gives 30,000 credits (about 6,000 build minutes on its small resource class), and Azure DevOps pairs one hosted parallel job (1,800 minutes a month) with a second, self-hosted job that has no minute cap at all. A starting credit is not a free tier - Railway burns through its $5 in 30 days, then bills $1 a month - so it is left out of the tables below. Everything you see was checked against the vendor’s own pricing page on 2026-09-20.

Free minutes are not the same offer twice

Every CI/CD vendor gives away compute, but the unit changes from page to page: GitHub counts minutes, CircleCI counts credits, AWS counts both minutes and seconds depending on the compute type, and Buddy counts GB-minutes. None of these convert cleanly into each other, because the underlying machine size differs too. A CircleCI credit buys less on a large resource class than a small one; an AWS CodeBuild minute on general1.small and one on lambda.arm.1GB are not the same silicon.

Read the unit before you compare two vendors on it, and check whether the number resets every month or only applies for a fixed window after signup. The two tables below split general-purpose CI/CD pipelines from mobile and app build services, because the second group measures its free tier in device builds rather than pipeline minutes.

Table 1: hosted CI/CD runners

PlatformFree computeUsersConcurrencyNotes
GitHub Actions2,000 minutes/month, 500 MB Packages storageUnlimitedVaries by planBoth figures are unmetered on public repositories; the caps apply to private repos only
GitLab400 compute minutes/month5-10 GiB storage per project
CircleCI30,000 credits/month (~6,000 build minutes, small class)530 concurrent jobs2 GB storage, 1 GB network transfer for self-hosted runners
Azure DevOps1 Microsoft-hosted job, 1,800 minutes/month51 self-hosted job, unlimited minutes2 GiB Azure Artifacts storage
Bitbucket Pipelines50 build minutes/month5-1 GB Git LFS storage
AWS CodeBuild100 EC2 build minutes or 6,000 Lambda build seconds/month--Does not expire at the end of the 12-month AWS Free Tier term
AWS CodePipeline1 active V1 pipeline; 100 V2 action-execution minutes/month--V2 minutes reset monthly and do not carry over
Buildkite2,000 Linux vCPU minutes/month510 concurrent jobs30-day build retention, 250k test executions/month
Buddy300 pipeline GB-minutes/month11 concurrent pipeline1 GB pipeline cache, 300 sandbox CPU-minutes
AppVeyorUnlimited public projects-1 concurrent job5 self-hosted jobs also included
CirunUnlimited runners for open source-UnlimitedARM and GPU runners included, on any supported cloud

GitHub’s own pricing page states both the 2,000 minutes and the 500 MB of Packages storage are free for public repositories, full stop - no minute count applies until the repository is private. That single line answers the question most people actually have when they search for GitHub Actions pricing: whether an open source project needs to watch the clock at all. It does not.

The bottom three rows of that table trade breadth for a narrower entry condition. AppVeyor and Cirun both limit their free tier to public projects, and both are generous inside that limit. AppVeyor runs unlimited public projects and throws in five self-hosted jobs. Cirun puts no cap on runner count at all, and its free tier covers ARM and GPU runners across every cloud provider it supports. Buddy goes the other way. It accepts private work, but it seats one person and runs one pipeline at a time. Its 300 GB-minutes are also the hardest figure on the table to compare against anything else, because a GB-minute prices memory and time together instead of counting wall-clock minutes.

Railway is left out of the table above. Its free offer is a one-time $5 credit that expires after 30 days, after which the account moves to $1/month. That is a starting credit, not a sustained free tier.

Table 2: mobile and app build services

General-purpose runners above build for Linux and Windows targets well. iOS and Android builds need macOS machines and code-signing tooling that most CI vendors do not run in-house, which is why a separate set of vendors specializes in mobile builds.

ServiceFree build allowanceTeamNotes
Codemagic500 macOS M2 build minutes/monthUnlimited apps, 1 user1 parallel build, 30-day build history
Bitrise300 credits/monthTeam of one1 private app, unlimited public apps, 90-minute build timeout
Expo15 Android + 15 iOS builds, 60 CI/CD minutes/monthUnlimited membersUpdates reach up to 1,000 monthly active users
Appcircle20 builds/month-1 concurrent build, 30-minute max build time, 1,000 CodePush updates/month
Diawi50 MB max upload, 3-day app availability-Up to 10 installs per uploaded app, no signup needed for a smaller no-account tier

A “build” on this table means one compile-and-package run, so the real ceiling depends on how often your app changes. A solo developer shipping a weekly TestFlight build fits comfortably inside Bitrise’s 300 monthly credits or Expo’s 15-and-15 allowance; a team merging several times a day will hit the wall inside the first week and needs to budget for a paid plan from the start.

Table 3: checks that run inside the pipeline

Coverage, code quality, and visual regression tools plug into the CI run itself rather than running it, so they carry their own, separate free tiers. Most of them report back to the pull request as a status check. A project can therefore outgrow its CI minutes while every check in this table still fits inside its free tier, or run into the reverse. Budget the two separately.

The unit changes again here. None of these tools meters build minutes. Each one caps the thing it actually measures: screenshots for Argos, repository count for Codacy, seats for Mergify, and runner minutes for CodSpeed.

ToolWhat it checksFree tier
CoverallsTest coverageAlways free for open source projects, no stated limit
CodacyCode quality and securityUp to 100 private repos and unlimited lines of code for open source projects
CodSpeedPerformance regression5 users, 600 macro runner minutes/month, unlimited for open source
ArgosVisual regressionUp to 5,000 screenshots/month
MergifyMerge queue and CI insightsUp to 5 users on private repositories
DeepScanJavaScript/TypeScript static analysisUnlimited public projects, 3 months of trend history

Coveralls and Codacy both waive their normal limits entirely for open source, which is the pattern across most of this table: paid tiers gate private-repo usage, and public repos stay free regardless of volume.

Left out, and why

Four more products in the CI/CD pipeline category did not make either table above:

  • Scrutinizer and DeepSource both run on a time-boxed trial rather than a sustained free plan: 14 days, then a paid subscription for anything beyond public repositories. A trial is not a free tier.
  • sourcehut’s public-alpha pricing page explicitly carves out builds.sr.ht, its CI service, as one of the two products that require payment even during the free alpha period for everything else. The CI product itself is not free, so it does not belong on a free-tier CI/CD list.
  • SonarQube Cloud does not publish its free-tier limits in a form that can be read off its pricing page, so it is left out.

Picking a starting point

For a solo project or a small open source repository, GitHub Actions is the default for a reason: the minutes cap does not apply at all as long as the repository stays public, and the platform is already where most public code lives. Move to GitLab or CircleCI once a project goes private and needs more than a token amount of monthly compute - GitLab’s 400 minutes and CircleCI’s 30,000 credits both outlast GitHub’s 2,000-minute private-repo allowance by a wide margin, though CircleCI’s 5-user cap and GitLab’s 5-user cap both bite before GitHub’s unlimited collaborator count does.

Azure DevOps is worth a second look specifically for its self-hosted parallel job: point it at your own runner and the minute cap disappears entirely, which none of the hosted-only plans in Table 1 offer. AWS CodeBuild and CodePipeline both make more sense as a piece of a larger AWS-native pipeline than as a standalone choice - the free minutes are real, but narrow, and both integrate most cleanly with other AWS services you would already need an account for.

For mobile builds, Expo’s 15-and-15 monthly allowance and 60 CI/CD minutes cover an early project comfortably, since Expo also handles the store-submission side that plain CI runners leave to you. Codemagic’s 500 macOS minutes give more raw build time if the project needs native iOS tooling Expo does not cover. Both beat paying for Mac-hosted CI minutes on a general-purpose runner, where macOS jobs typically cost several times a Linux job on the same platform.

Add a coverage or code-quality check once the pipeline itself is running: Coveralls and Codacy both stay free indefinitely for public repositories, so there is no reason to wait until a project outgrows its CI budget to add one.