Since October 3, 2026, BuildPulse runners take CircleCI and Semaphore jobs as well as GitHub Actions jobs. It is on for every organization, including the free tier, which needs no credit card. The machines, sizes and per-minute rates are the ones our GitHub Actions customers already use.
How it works
You keep your CI. BuildPulse joins it through the vendor's own self-hosted mechanism:
- CircleCI: a self-hosted machine runner on a resource class you create. Jobs set
machine: trueandresource_class: your-namespace/your-class. - Semaphore: a self-hosted agent of an agent type you create. Pipelines set
agent: machine: type: s1-your-type.
BuildPulse watches that resource class or agent type for waiting jobs. When one is queued, we start an Ubuntu 24.04 machine with Docker at the size you picked. It registers with your CI, runs exactly one job, and is discarded. You pay our per-minute rate for the time the job runs, not for the boot, and the same 3,000 free base minutes a month apply.
What it costs next to CircleCI
Jobs on a CircleCI self-hosted runner use no CircleCI credits for their run time (runner overview), so the minute costs our rate alone. CircleCI's own machines cost $15 per 25,000 credits (pricing) times the credits per minute on its price list. Against its Linux VM classes, that puts BuildPulse 33% lower at 2 and 4 vCPU and 73% lower at 8 and 16:
| CircleCI machine | vCPU | CircleCI $/min | BuildPulse size | BuildPulse $/min | BuildPulse costs |
|---|---|---|---|---|---|
| Medium (7.5 GB) | 2 | $0.006 | 2x (8 GB) | $0.004 | 33% less |
| Large (15 GB) | 4 | $0.012 | 4x (16 GB) | $0.008 | 33% less |
| X-large (32 GB) | 8 | $0.06 | 8x (32 GB) | $0.016 | 73% less |
| 2X-large (64 GB) | 16 | $0.12 | 16x (64 GB) | $0.032 | 73% less |
| 2X-large+ (64 GB) | 32 | $0.18 | 32x (128 GB) | $0.064 | 64% less |
Two CircleCI terms still apply on a self-hosted runner. Restoring caches and workspaces to it counts as network transfer, billed past your plan's allowance. And CircleCI caps how many self-hosted jobs run at once: 5 on Free, 20 on Performance, unlimited on Scale (pricing).
The class-by-class detail, including CircleCI's Gen 2 machines and a worked month, is on BuildPulse vs CircleCI machines.
What it costs next to Semaphore
Semaphore charges $0.0025 a minute for every self-hosted agent (pricing). That fee is billed by Semaphore on top of our rate, so the column below includes it:
| Semaphore machine | vCPU | Semaphore $/min | BuildPulse size | BuildPulse + fee $/min | BuildPulse costs |
|---|---|---|---|---|---|
| f1-standard-2 (8 GB) | 2 | $0.0075 | 2x (8 GB) | $0.0065 | 13% less |
| f1-standard-4 (16 GB) | 4 | $0.015 | 4x (16 GB) | $0.0105 | 30% less |
Semaphore's current x86 machines stop at 4 vCPU. From 8 vCPU up there is no Semaphore cloud machine to compare with, and our 8x to 64x sizes are available at our rate plus the same fee.
On ARM we lose. Our arm64 rate plus Semaphore's fee costs more than Semaphore's own ARM machines at every size it sells:
| Semaphore machine | vCPU | Semaphore $/min | BuildPulse size | BuildPulse + fee $/min | BuildPulse costs |
|---|---|---|---|---|---|
| r1-standard-2 (4 GB) | 2 | $0.003 | 2x (8 GB) | $0.005 | 67% more |
| r1-standard-4 (8 GB) | 4 | $0.006 | 4x (16 GB) | $0.0075 | 25% more |
| r1-standard-8 (16 GB) | 8 | $0.012 | 8x (32 GB) | $0.0125 | 4% more |
If price is what matters for an ARM job on Semaphore, keep it on Semaphore's machines.
All vendor prices were read from the vendors' own pages on October 5, 2026.
Start time: about 44 seconds, every job
Every CircleCI or Semaphore job starts a new machine. In our measurements on October 2, 2026, jobs went from queued to started in 44 seconds at the median and 48.5 seconds at the 90th percentile. We are not claiming that is faster than either vendor's own machines. A pipeline made of many jobs that each run for less than a minute will feel that wait.
Setting it up
- Create a resource class (CircleCI) or an agent type (Semaphore) and copy its token. CircleCI also needs a read-only personal API token so we can see when jobs are waiting.
- In BuildPulse, open Runners → Setup, pick the provider and a size, and paste the tokens. We check them against the vendor before saving.
- Point one job at the new resource class or agent type and push.
The setup guide has the details and example configs for both.
When to stay where you are
- Very short, very many jobs. The boot on every job can cost more time than the cheaper minute saves.
- More concurrent jobs than CircleCI's self-hosted cap on your plan.
- macOS, Windows or Docker executor jobs on CircleCI. We run Linux machine jobs only.
- ARM on Semaphore, for the price reasons above.
Everything else in your pipeline stays where it is, so you can move one job, compare the bill, and decide.