OXYGENHUB

Home

Andy McCall edited this page · 1 revision

OxygenFlow

Flow says what to run. Jet carries it to where it should run.

OxygenFlow is the CI system for Oxygen repositories. A pipeline is a .flow/pipeline.kdl file of jobs. Each job runs hermetically in a sandbox: a Firecracker microVM where the machine has KVM, a syscall sandbox (Landlock and seccomp) where it doesn't. The job sees the repository's files without a checkout, and ends with a receipt that says exactly what ran, on which state, and what it produced. Jobs whose files a change didn't touch keep their previous result.

What it does today

  • Pipelines of jobs with dependencies, scopes, mounts, environment, triggers (push, tag, manual, schedule), variables and secrets: see Pipelines.
  • Runs on your machine first: flow run runs the pipeline locally, in the same sandboxes CI uses. See Running Locally.
  • Runners on your own machines, pulling jobs from OxygenHub over HTTPS. See Runners.
  • Artifacts and reports kept per job, with signed receipts. See Reports.

What's next

Jetstream, the fleet as a service of its own:

  • runners that measure themselves;
  • placement that explains every choice;
  • images fetched by hash;
  • pools on your own hosts, on Kubernetes and on GCP, AWS and Azure.

OxygenHub embeds it by default; others can run it on its own.

Reference