CircleCI and Semaphore on BuildPulse runners
BuildPulse runs CircleCI and Semaphore jobs on the same machines, sizes and per-minute prices as our GitHub Actions runners. You create a runner on your CI's side, paste its token into BuildPulse, and change one line in your pipeline.
How it works
BuildPulse watches your CircleCI resource class or Semaphore 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 afterwards.
Start time
Every CircleCI or Semaphore job starts a new machine, so every job waits for one to boot. In our own 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. Plan for that wait on each job.
Billing
You pay our per-minute rate for the time the job runs on the machine, from when your CI starts it to when it ends. The boot is not billed. The same 3,000 free base minutes a month that cover GitHub Actions jobs cover these too, and no credit card is needed to use them. Your CI vendor may still charge its own fees: see pricing below.
CircleCI setup
BuildPulse machines join CircleCI as a self-hosted machine runner. Jobs use the machine executor with your resource class.
- In CircleCI, open Self-Hosted Runners, create a namespace if your organization has none, then create a resource class, for example
your-namespace/bp-x64-4x. Copy the resource class token CircleCI shows once. - In CircleCI User Settings → Personal API Tokens, create a token with read-only access. BuildPulse uses it only to see when jobs are waiting for your resource class. Read-only tokens expire after at most a year; we alert you when it stops working.
- In BuildPulse, open Runners → Setup, pick CircleCI and a size. Paste the resource class, its token and the API token. We check them against CircleCI before saving, and store them encrypted in AWS Secrets Manager.
- Point a job at the resource class:
version: 2.1
jobs:
test:
machine: true
resource_class: your-namespace/bp-x64-4x
steps:
- checkout
- run: npm ci && npm testDocker is available to every step, so docker build and docker run work as they do on a CircleCI machine. CircleCI caps how many self-hosted runner jobs run at once: 5 on its Free plan, 20 on Performance, unlimited on Scale (circleci.com/pricing).
Semaphore setup
BuildPulse machines join Semaphore as a self-hosted agent of an agent type you create.
- In Semaphore, open Settings → Self-hosted agents and add an agent type, for example
s1-bp-x64-4x. Copy its registration token. - In BuildPulse, open Runners → Setup, pick Semaphore CI and a size. Enter your organization (
your-orgoryour-org.semaphoreci.com), the agent type and the registration token. We check them against Semaphore before saving. - Point your pipeline at the agent type:
version: v1.0
name: CI
agent:
machine:
type: s1-bp-x64-4x
blocks:
- name: Test
task:
jobs:
- name: npm test
commands:
- checkout
- npm ci && npm testcheckout, cache, artifact and test-results work as usual. sem-version is not available on any Semaphore self-hosted agent, ours included: install language versions in a command or run the job in a container image.
Pricing next to CircleCI and Semaphore
Vendor prices below were read from their own pricing pages on October 5, 2026. Our prices are the ones on /pricing. Each row compares machines with the same number of vCPUs.
CircleCI Linux VM
CircleCI charges no credits for jobs on a self-hosted runner (runner overview), so the job costs our per-minute rate. CircleCI's own machines are priced in credits at $15 per 25,000 (pricing), which is $0.0006 a credit, times the credits per minute on its price list.
| 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 |
| CircleCI machine | vCPU | CircleCI $/min | BuildPulse size | BuildPulse $/min | BuildPulse costs |
|---|---|---|---|---|---|
| Medium Gen 2 · 8 GB | 2 | $0.0108 | 2x · 8 GB | $0.004 | 63% less |
| Large Gen 2 · 16 GB | 4 | $0.0216 | 4x · 16 GB | $0.008 | 63% less |
| X-large Gen 2 · 32 GB | 8 | $0.0432 | 8x · 32 GB | $0.016 | 63% less |
| 2X-large Gen 2 · 64 GB | 16 | $0.0864 | 16x · 64 GB | $0.032 | 63% less |
| 2X-large+ Gen 2 · 128 GB | 32 | $0.1728 | 32x · 128 GB | $0.064 | 63% less |
CircleCI's Gen 2 Linux VM classes, from the same price list, cost more than the first generation at 2 and 4 vCPU and less from 8 vCPU up.
One CircleCI charge still applies on a self-hosted runner: restoring caches and workspaces to it counts as network transfer, billed at 420 credits per GB once you pass your plan's included allowance (persisting data, pricing).
Semaphore
Semaphore charges $0.0025 a minute for every self-hosted agent, any machine (semaphore.io/pricing). That fee is billed by Semaphore, on top of our rate, so the column below adds it in. Semaphore's current x86 machines stop at 4 vCPU (machine types); from 8 vCPU up there is no Semaphore cloud machine to compare with.
| 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 |
On ARM, Semaphore's own machines are cheaper. Our arm64 rate plus Semaphore's self-hosted fee costs more than its r1 machines at every size it sells. Our arm64 machines have twice the memory at each size, but if price is what matters, run ARM jobs on Semaphore's cloud.
| 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 |
More
BuildPulse vs CircleCI machines walks through the trade-offs in more detail. Questions about a setup? Get in touch.
Try it on one pipeline
Create a resource class or agent type, paste the token, and point one job at it.
3,000 free minutes every month · No credit card required