Bitrab 🐰
Bitrab runs GitLab-style pipelines on a plain machine, using your existing shell and tools instead of spinning up a GitLab-managed container runner.
The value proposition is speed:
- test CI changes before pushing
- reuse
.gitlab-ci.ymloutside GitLab - cut "push, wait, repeat" cycle time
- reduce CI startup overhead by running several jobs in parallel inside one host or container
What bitrab does well
Bitrab is strongest when your pipeline is mostly shell commands and your goal is fast feedback. It can:
- load
.gitlab-ci.ymlor.bitrab-ci.yml - merge includes
- validate against GitLab's schema plus local capability checks
- execute stage-based or DAG-based pipelines
- expand
parallel:andparallel: matrix: - collect and inject local artifacts
- re-run on config file changes
- warn when a supposedly read-only job mutates the tree
What bitrab does not try to fake
Bitrab is intentionally honest about boundaries:
- no container isolation
- no
image:pulling - no
services:sidecars - no GitLab deployment, Pages, release, or secret-management APIs
- some GitLab config keys are ignored or only partly meaningful locally
If you need full runner semantics, use GitLab Runner. If you want faster local feedback from the same pipeline file, bitrab is the better fit.123
Start here
-
Source: bitrab/config/loader.py ↩
-
Source: bitrab/plan.py ↩
-
Source: bitrab/config/capabilities.py ↩