bupha vs hosted CI
bupha runs push-triggered CI on self-controlled hardware — not a GHA replacement at fleet scale.
vs GitHub Actions
| bupha | GitHub Actions | |
|---|---|---|
| compute | your box | managed fleet |
| queue | latest-wins + bounded all, no cold start | unlimited parallelism, queue wait |
| secrets | never leave the machine | hosted on GitHub |
| cache | your backend — local disk or your S3/R2/minio | hosted cache |
| pipeline def | your runner — ci.sh or dagger module | YAML DSL + marketplace actions |
| local == CI | bupha run is literally the same path | act approximates |
| batching | supersede built-in, honest "cancelled" statuses | concurrency groups |
| scale | one worker, serialized runs | matrix/fleet |
| cost | your box only | minutes billing |
When GHA is better: you need parallelism, matrices across OSes, hosted macOS/Windows builds, or marketplace actions. When bupha fits: instant feedback on self-owned hardware, secrets that never leave the machine, warm caches on self-owned storage, no YAML.
vs others
- Jenkins/Buildkite — bupha is a single binary with a TOML file, not a server product to operate.
- Woodpecker/Forgejo CI — bupha is forge-webhook driven and much smaller; those are full pipeline platforms.
- self-hosted GHA runner — bupha is lighter (no runner service, no org config) but has no matrix or marketplace.