This file is in conflict in this state; the markers below are the conflict. All conflicts
| 1 | // OxygenFlow's own pipeline (docs/m0.md). Runs in Firecracker microVMs on |
| 2 | // Earth for every push to a bookmark; see the Flow tab on OxygenHub. |
| 3 | schema-version 1 |
| 4 | |
| 5 | sandbox "alpine" { |
| 6 | runtime "microvm" |
| 7 | // Alpine 3.24.2 minirootfs, imported on Earth with `flow rootfs import`. |
| 8 | rootfs "cas://blob/e95d22fb2380b67193f2640a12c2f8c7bae485f6fd14330bdb0c7157faa588dc" |
| 9 | memory-limit "256MiB" |
| 10 | cpu-limit 1 |
| 11 | network "isolated" |
| 12 | } |
| 13 | |
| 14 | job "layout" { |
| 15 | sandbox "alpine" |
| 16 | exec "sh" "-eu" ".flow/jobs/layout.sh" |
| 17 | } |
| 18 | |
| 19 | job "todos" { |
| 20 | sandbox "alpine" |
| 21 | scope "crates/**" |
| 22 | exec "sh" "-eu" ".flow/jobs/todos.sh" |
| 23 | } |
| 24 | |
| 25 | job "size" { |
| 26 | sandbox "alpine" |
| 27 | scope "crates/**" |
| 28 | exec "sh" "-eu" ".flow/jobs/size.sh" |
| 29 | } |
| 30 | |
| 31 | job "isolation" { |
| 32 | sandbox "alpine" |
| 33 | exec "sh" "-eu" ".flow/jobs/isolation.sh" |
| 34 | } |
| 35 | |
| 36 | // The build image (images/rust): Rust with rustfmt and clippy, Node, and the |
| 37 | // vendored crates. oxygen comes from the pinned subrepo in deps/. |
| 38 | sandbox "rust" { |
| 39 | runtime "microvm" |
| 40 | rootfs "cas://blob/169de040f406eec3ec4af81400cff8736d0966c7532e73a44cdcf7d35cda05a4" |
| 41 | memory-limit "8GiB" |
| 42 | cpu-limit 4 |
| 43 | network "loopback" |
| 44 | } |
| 45 | |
| 46 | sandbox "rust-small" { |
| 47 | runtime "microvm" |
| 48 | rootfs "cas://blob/169de040f406eec3ec4af81400cff8736d0966c7532e73a44cdcf7d35cda05a4" |
| 49 | memory-limit "1GiB" |
| 50 | cpu-limit 1 |
| 51 | network "isolated" |
| 52 | } |
| 53 | |
| 54 | job "fmt" { |
| 55 | sandbox "rust-small" |
| 56 | // This workspace only: --all would reach the pinned oxygen in deps/. |
| 57 | exec "cargo" "fmt" "--check" "-p" "flow" "-p" "flow-core" "-p" "flow-init" |
| 58 | } |
| 59 | |
| 60 | job "clippy" { |
| 61 | sandbox "rust" |
| 62 | depends-on "fmt" |
| 63 | mount { |
| 64 | source "ephemeral://disk" |
| 65 | target "/src/target" |
| 66 | size "16GiB" |
| 67 | <<<<<<< oxy conflict 1 of 2, side 1 of 2: change a39dfbb6 "oxygen as a pinned subrepo in deps/ (make pins moves it), and fmt, clippy and tests in the pipeline, before the summary" |
| 68 | } |
| 69 | env { |
| 70 | CARGO_INCREMENTAL "0" |
| 71 | ======= oxy conflict 1 of 2, side 2 of 2: change 30cec500 "ci: keep clippy's and test's target from their last passing run (refs #28)" |
| 72 | // Kept from this job's last passing run (oxygenflow#28): cargo |
| 73 | // builds only what changed since. |
| 74 | cache "target" |
| 75 | key "Cargo.lock" |
| 76 | >>>>>>> oxy conflict 1 of 2 end |
| 77 | } |
| 78 | // One build identity for every CI state, so the cached target stays |
| 79 | // fresh from one push to the next (oxygenflow#52). |
| 80 | env { |
| 81 | OXY_BUILD "ci" |
| 82 | } |
| 83 | exec "sh" ".flow/warm-target.sh" "cargo" "clippy" "--workspace" "--all-targets" "--locked" "--" "-D" "warnings" |
| 84 | } |
| 85 | |
| 86 | job "test" { |
| 87 | sandbox "rust" |
| 88 | depends-on "fmt" |
| 89 | mount { |
| 90 | source "ephemeral://disk" |
| 91 | target "/src/target" |
| 92 | size "16GiB" |
| 93 | <<<<<<< oxy conflict 2 of 2, side 1 of 2: change a39dfbb6 "oxygen as a pinned subrepo in deps/ (make pins moves it), and fmt, clippy and tests in the pipeline, before the summary" |
| 94 | } |
| 95 | env { |
| 96 | CARGO_INCREMENTAL "0" |
| 97 | ======= oxy conflict 2 of 2, side 2 of 2: change 30cec500 "ci: keep clippy's and test's target from their last passing run (refs #28)" |
| 98 | // Kept from this job's last passing run (oxygenflow#28): cargo |
| 99 | // builds only what changed since. |
| 100 | cache "target" |
| 101 | key "Cargo.lock" |
| 102 | } |
| 103 | // One build identity for every CI state, so the cached target stays |
| 104 | // fresh from one push to the next (oxygenflow#52). |
| 105 | env { |
| 106 | OXY_BUILD "ci" |
| 107 | >>>>>>> oxy conflict 2 of 2 end |
| 108 | } |
| 109 | exec "sh" ".flow/warm-target.sh" "cargo" "test" "--workspace" "--locked" |
| 110 | } |
| 111 | |
| 112 | job "summary" { |
| 113 | sandbox "alpine" |
| 114 | depends-on "layout" "todos" "size" "isolation" "clippy" "test" |
| 115 | env { |
| 116 | PROJECT "OxygenFlow" |
| 117 | } |
| 118 | exec "sh" "-eu" ".flow/jobs/summary.sh" |
| 119 | } |