OxygenFlow pipeline: fmt, then clippy -D warnings, tests and a release build in microVMs on Earth, on every push 2b668d92b066
closes #6
- Author
- Andy McCall @andymccall <[email protected]>
- When
- · 2026-09-28 17:48 UTC
- Signature
- ✔ signed by Andy McCall
- Hash
2b668d92b066f07d2f01a54e49ce18746e4a97128653e22ddf9fd423959df76d- Depends on
- nothing: a root change
- Depended on by
- 232aabb5452d 045340293dc7 f9eab8117787 ff6987682725 f5bd79d06f5c 8d6cf1f23694 a451982b1d34 bd40c0e3feba dfa3e8e95d80 4224eb6b4488 6cc9dea93092 5b033d68726a 77a2a6b3254d b66a5c47cc61 0ad273ca4fcf 03a3e8ad8cf6 bdd894b548e4 5e4e2ef26abb ba1731bba530 dfe165877345
- In bookmarks
- agents-in-readme bare-hashes carried-not-removed carry-identical doctor-trust identical-sides keyless-tags main merge-remote-bookmark only-help-103 paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state switch-says
- In tags
- v0.1.0 v0.10.0 v0.11.0 v0.2.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
- Edits
- 1 atom, 2 tree operations, 1 file
Browse the tree at this change
added .flow/pipeline.kdl +71 −0
| 1 | + | // Oxygen's own pipeline (OxygenFlow, docs in the oxygenflow repository). |
|
| 2 | + | // Every push to a bookmark on OxygenHub runs it in Firecracker microVMs on |
|
| 3 | + | // Earth; the jobs appear as checks on the change. |
|
| 4 | + | schema-version 1 |
|
| 5 | + | ||
| 6 | + | // The OxygenFlow build image: Rust with rustfmt and clippy, Node, and every |
|
| 7 | + | // crate of Cargo.lock vendored (oxygenflow/images/rust). Rebuild and re-pin |
|
| 8 | + | // it when Cargo.lock changes. |
|
| 9 | + | sandbox "rust" { |
|
| 10 | + | runtime "microvm" |
|
| 11 | + | rootfs "cas://blob/3ba0779a55b1d66fce10adf5a01585624c9aab089f590d228368c38fd3e65a46" |
|
| 12 | + | memory-limit "8GiB" |
|
| 13 | + | cpu-limit 4 |
|
| 14 | + | // Tests serve and connect on 127.0.0.1; nothing leaves the guest. |
|
| 15 | + | network "loopback" |
|
| 16 | + | } |
|
| 17 | + | ||
| 18 | + | sandbox "rust-small" { |
|
| 19 | + | runtime "microvm" |
|
| 20 | + | rootfs "cas://blob/3ba0779a55b1d66fce10adf5a01585624c9aab089f590d228368c38fd3e65a46" |
|
| 21 | + | memory-limit "1GiB" |
|
| 22 | + | cpu-limit 1 |
|
| 23 | + | network "isolated" |
|
| 24 | + | } |
|
| 25 | + | ||
| 26 | + | job "fmt" { |
|
| 27 | + | sandbox "rust-small" |
|
| 28 | + | exec "cargo" "fmt" "--all" "--check" |
|
| 29 | + | } |
|
| 30 | + | ||
| 31 | + | job "clippy" { |
|
| 32 | + | sandbox "rust" |
|
| 33 | + | depends-on "fmt" |
|
| 34 | + | mount { |
|
| 35 | + | source "ephemeral://disk" |
|
| 36 | + | target "/src/target" |
|
| 37 | + | size "24GiB" |
|
| 38 | + | } |
|
| 39 | + | env { |
|
| 40 | + | CARGO_INCREMENTAL "0" |
|
| 41 | + | } |
|
| 42 | + | exec "cargo" "clippy" "--workspace" "--all-targets" "--locked" "--" "-D" "warnings" |
|
| 43 | + | } |
|
| 44 | + | ||
| 45 | + | job "test" { |
|
| 46 | + | sandbox "rust" |
|
| 47 | + | depends-on "fmt" |
|
| 48 | + | mount { |
|
| 49 | + | source "ephemeral://disk" |
|
| 50 | + | target "/src/target" |
|
| 51 | + | size "24GiB" |
|
| 52 | + | } |
|
| 53 | + | env { |
|
| 54 | + | CARGO_INCREMENTAL "0" |
|
| 55 | + | } |
|
| 56 | + | exec "cargo" "test" "--workspace" "--locked" |
|
| 57 | + | } |
|
| 58 | + | ||
| 59 | + | job "build" { |
|
| 60 | + | sandbox "rust" |
|
| 61 | + | depends-on "fmt" |
|
| 62 | + | mount { |
|
| 63 | + | source "ephemeral://disk" |
|
| 64 | + | target "/src/target" |
|
| 65 | + | size "24GiB" |
|
| 66 | + | } |
|
| 67 | + | env { |
|
| 68 | + | CARGO_INCREMENTAL "0" |
|
| 69 | + | } |
|
| 70 | + | exec "cargo" "build" "--release" "--locked" |
|
| 71 | + | } |