ci: keep each build job's target from its last passing run (refs andymccall/oxygenflow#28) a451982b1d34
The clippy, test, build and dist target disks are caches keyed by Cargo.lock, so a runner starts from its last passing run's target and cargo builds only what changed. clippy and test set OXY_BUILD=ci so the build script does not rerun on every state; build keeps its flow #heads identity for the oxy artifact.
- Author
- Andy McCall @andymccall <[email protected]>
- When
- · 2026-10-13 17:35 UTC
- Signature
- ✔ signed by Andy McCall
- Hash
a451982b1d34e567b7200db20846faf5a3d8fa1497159efffb3a66f905d35b47- Depends on
- 2b668d92b066 b66a5c47cc61 ba1731bba530
- Depended on by
- nothing yet
- In bookmarks
- carried-not-removed doctor-trust identical-sides keyless-tags main merge-remote-bookmark paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state
- In tags
- v0.10.0 v0.11.0 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
- 5 atoms, 0 tree operations, 1 file
Browse the tree at this change
modified .flow/pipeline.kdl +26 −0
| … | 34 unchanged lines |
||
| 35 | 35 | source "ephemeral://disk" |
|
| 36 | 36 | target "/src/target" |
|
| 37 | 37 | size "24GiB" |
|
| 38 | + | // Kept from this job's last passing run (oxygenflow#28): cargo |
|
| 39 | + | // builds only what changed since. |
|
| 40 | + | cache "target" |
|
| 41 | + | key "Cargo.lock" |
|
| 38 | 42 | } |
|
| 43 | + | // One build identity for every CI state, so the cached target stays |
|
| 44 | + | // fresh from one push to the next (oxygenflow#52). |
|
| 45 | + | env { |
|
| 46 | + | OXY_BUILD "ci" |
|
| 47 | + | } |
|
| 39 | 48 | <<<<<<< oxy conflict 1 of 1, side 1 of 2: change 110a6605 "OxygenFlow pipeline: fmt, then clippy -D warnings, tests and a release build in microVMs on Earth, on every push" |
|
| 40 | 49 | env { |
|
| 41 | 50 | CARGO_INCREMENTAL "0" |
|
| … | 7 unchanged lines |
||
| 49 | 58 | sandbox "rust" |
|
| 50 | 59 | depends-on "fmt" |
|
| 51 | 60 | mount { |
|
| 61 | + | // Kept from this job's last passing run (oxygenflow#28): cargo |
|
| 62 | + | // builds only what changed since. |
|
| 63 | + | cache "target" |
|
| 64 | + | key "Cargo.lock" |
|
| 65 | + | } |
|
| 66 | + | // One build identity for every CI state, so the cached target stays |
|
| 67 | + | // fresh from one push to the next (oxygenflow#52). |
|
| 68 | + | env { |
|
| 69 | + | OXY_BUILD "ci" |
|
| 52 | 70 | source "ephemeral://disk" |
|
| 53 | 71 | target "/src/target" |
|
| 54 | 72 | size "24GiB" |
|
| … | 8 unchanged lines |
||
| 63 | 81 | sandbox "rust" |
|
| 64 | 82 | depends-on "fmt" |
|
| 65 | 83 | mount { |
|
| 84 | + | // Kept from this job's last passing run (oxygenflow#28): cargo |
|
| 85 | + | // builds only what changed since. |
|
| 86 | + | cache "target" |
|
| 87 | + | key "Cargo.lock" |
|
| 66 | 88 | source "ephemeral://disk" |
|
| 67 | 89 | target "/src/target" |
|
| 68 | 90 | size "24GiB" |
|
| … | 15 unchanged lines |
||
| 84 | 106 | depends-on "fmt" |
|
| 85 | 107 | scope "Cargo.toml" "scripts/dist.sh" "packaging/**" |
|
| 86 | 108 | mount { |
|
| 109 | + | // Kept from this job's last passing run (oxygenflow#28): cargo |
|
| 110 | + | // builds only what changed since. |
|
| 111 | + | cache "target" |
|
| 112 | + | key "Cargo.lock" |
|
| 87 | 113 | source "ephemeral://disk" |
|
| 88 | 114 | target "/src/target" |
|
| 89 | 115 | size "24GiB" |
|
| … | 39 unchanged lines |