Prebuilt dependencies for oxygen and oxygenflow too 2b40cb9b87e1
The build image prebuilds all three workspaces (images/rust/build.sh), imported on Earth as cas://blob/169de040f406eec3ec4af81400cff8736d0966c7532e73a44cdcf7d35cda05a4. This pipeline pins it and its cargo jobs start from /opt/warm/oxygenflow through .flow/warm-target.sh, as oxygenhub's do (oxygenhub#29).
- Author
- Andy McCall @andymccall <[email protected]>
- When
- · 2026-09-29 04:23 UTC
- Signature
- ✔ signed by Andy McCall
- Hash
2b40cb9b87e16769db3a118c0cbcfc29bb0c9928f36ddd7dab9dc4db869e11d6- Depends on
- eb5c4db673e5 eba589f87e4f f29b88af0d9b fe128fa67a06
- Depended on by
- 9e5fd161efc3 c1a24672dbd5 67634e22f48f
- In bookmarks
- main newer-pipeline push-uses-login
- In tags
- v0.2.0 v0.3.0 v0.3.1 v0.4.0 v0.5.0 v0.5.1 v0.5.2 v0.5.3
- Edits
- 8 atoms, 53 tree operations, 55 files
Browse the tree at this change
added .flow/warm-target.sh +20 −0
| 1 | + | #!/bin/sh |
|
| 2 | + | # Start from the build image's prebuilt dependencies, then run the command. |
|
| 3 | + | # OxygenFlow's rust image holds this workspace's dependencies built at /src with |
|
| 4 | + | # this pipeline's environment (oxygenflow/images/rust, backlog F6b2); the |
|
| 5 | + | # job's target disk starts empty, so copying them in leaves cargo only this |
|
| 6 | + | # workspace's own crates to compile. Without them (an older image, or a |
|
| 7 | + | # failed copy) the job simply builds everything, as before. |
|
| 8 | + | set -eu |
|
| 9 | + | warm=/opt/warm/oxygenflow |
|
| 10 | + | # A fresh ext4 target disk holds only lost+found. |
|
| 11 | + | if [ -d "$warm" ] && [ -z "$(ls -A target 2>/dev/null | grep -vx 'lost+found')" ]; then |
|
| 12 | + | start=$(date +%s) |
|
| 13 | + | if cp -R --preserve=timestamps "$warm/." target/; then |
|
| 14 | + | echo "flow: prebuilt dependencies copied in $(( $(date +%s) - start )) s" |
|
| 15 | + | else |
|
| 16 | + | echo "flow: could not copy the prebuilt dependencies; building them" >&2 |
|
| 17 | + | rm -rf target/* 2>/dev/null || true |
|
| 18 | + | fi |
|
| 19 | + | fi |
|
| 20 | + | exec "$@" |
removed images/rust/warm +0 −0
No line changes.
removed images/rust/warm/oxygenhub +0 −0
No line changes.
removed images/rust/warm/oxygenhub/Cargo.lock +0 −0
| … | 4542 unchanged lines |
removed images/rust/warm/oxygenhub/Cargo.toml +0 −0
| … | 65 unchanged lines |
removed images/rust/warm/oxygenhub/crates +0 −0
No line changes.
removed images/rust/warm/oxygenhub/crates/hub +0 −0
No line changes.
removed images/rust/warm/oxygenhub/crates/hub-api +0 −0
No line changes.
removed images/rust/warm/oxygenhub/crates/hub-api/Cargo.toml +0 −0
| … | 16 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub-api/src +0 −0
No line changes.
removed images/rust/warm/oxygenhub/crates/hub-api/src/bin +0 −0
No line changes.
removed images/rust/warm/oxygenhub/crates/hub-api/src/bin/typescript.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub-api/src/lib.rs +0 −0
No line changes.
removed images/rust/warm/oxygenhub/crates/hub/Cargo.toml +0 −0
| … | 63 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub/src +0 −0
No line changes.
removed images/rust/warm/oxygenhub/crates/hub/src/lib.rs +0 −0
No line changes.
removed images/rust/warm/oxygenhub/crates/hub/src/main.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub/tests +0 −0
No line changes.
removed images/rust/warm/oxygenhub/crates/hub/tests/accounts.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub/tests/api.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub/tests/browse.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub/tests/contrast.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub/tests/edits.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub/tests/flow.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub/tests/issues.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub/tests/proposals.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub/tests/recovery.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/crates/hub/tests/releases.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/deps +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/Cargo.toml +0 −0
| … | 24 unchanged lines |
removed images/rust/warm/oxygenhub/deps/oxygenflow/crates +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/crates/flow-core +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/crates/flow-core/Cargo.toml +0 −0
| … | 17 unchanged lines |
removed images/rust/warm/oxygenhub/deps/oxygenflow/crates/flow-core/src +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/crates/flow-core/src/lib.rs +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/Cargo.toml +0 −0
| … | 35 unchanged lines |
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core/Cargo.toml +0 −0
| … | 27 unchanged lines |
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core/src +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core/src/lib.rs +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core/tests +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core/tests/bench.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core/tests/commutativity.rs +0 −0
| … | 1 unchanged lines |
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-server +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-server/Cargo.toml +0 −0
| … | 17 unchanged lines |
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-server/src +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-server/src/lib.rs +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-server/tests +0 −0
No line changes.
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-server/tests/http.rs +0 −0
| … | 1 unchanged lines |
modified .flow/pipeline.kdl +4 −4
| … | 36 unchanged lines |
||
| 37 | 37 | // vendored crates. oxygen comes from the pinned subrepo in deps/. |
|
| 38 | 38 | sandbox "rust" { |
|
| 39 | 39 | runtime "microvm" |
|
| 40 | - | rootfs "cas://blob/3ba0779a55b1d66fce10adf5a01585624c9aab089f590d228368c38fd3e65a46" |
|
| 40 | + | rootfs "cas://blob/169de040f406eec3ec4af81400cff8736d0966c7532e73a44cdcf7d35cda05a4" |
|
| 41 | 41 | memory-limit "8GiB" |
|
| 42 | 42 | cpu-limit 4 |
|
| 43 | 43 | network "loopback" |
|
| … | 1 unchanged lines |
||
| 45 | 45 | ||
| 46 | 46 | sandbox "rust-small" { |
|
| 47 | 47 | runtime "microvm" |
|
| 48 | - | rootfs "cas://blob/3ba0779a55b1d66fce10adf5a01585624c9aab089f590d228368c38fd3e65a46" |
|
| 48 | + | rootfs "cas://blob/169de040f406eec3ec4af81400cff8736d0966c7532e73a44cdcf7d35cda05a4" |
|
| 49 | 49 | memory-limit "1GiB" |
|
| 50 | 50 | cpu-limit 1 |
|
| 51 | 51 | network "isolated" |
|
| … | 16 unchanged lines |
||
| 68 | 68 | env { |
|
| 69 | 69 | CARGO_INCREMENTAL "0" |
|
| 70 | 70 | } |
|
| 71 | - | exec "cargo" "clippy" "--workspace" "--all-targets" "--locked" "--" "-D" "warnings" |
|
| 71 | + | exec "sh" ".flow/warm-target.sh" "cargo" "clippy" "--workspace" "--all-targets" "--locked" "--" "-D" "warnings" |
|
| 72 | 72 | } |
|
| 73 | 73 | ||
| 74 | 74 | job "test" { |
|
| … | 7 unchanged lines |
||
| 82 | 82 | env { |
|
| 83 | 83 | CARGO_INCREMENTAL "0" |
|
| 84 | 84 | } |
|
| 85 | - | exec "cargo" "test" "--workspace" "--locked" |
|
| 85 | + | exec "sh" ".flow/warm-target.sh" "cargo" "test" "--workspace" "--locked" |
|
| 86 | 86 | } |
|
| 87 | 87 | ||
| 88 | 88 | job "summary" { |
|
| … | 7 unchanged lines |
modified images/rust/build.sh +1 −1
| … | 27 unchanged lines |
||
| 28 | 28 | # Dependency recipes of the workspaces whose dependencies the image |
|
| 29 | 29 | # prebuilds (see the Dockerfile). |
|
| 30 | 30 | rm -rf "${here:?}/warm" |
|
| 31 | - | for ws in oxygenhub; do |
|
| 31 | + | for ws in oxygenhub oxygen oxygenflow; do |
|
| 32 | 32 | python3 "$here/recipe.py" "$dev/$ws" "$here/warm/$ws" |
|
| 33 | 33 | done |
|
| 34 | 34 | docker build -q -t oxygenflow-build \ |
|
| … | 6 unchanged lines |