OXYGENHUB

OxygenFlow's own pipeline: layout, notes, size and isolation checks, then a summary, in microVMs on Earth f29b88af0d9b

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-28 11:54 UTC
Signature
✔ signed by Andy McCall
Hash
f29b88af0d9b273316c5837475d80a8e8079e27eaf14e444b774e922c97a9dde
Depends on
nothing: a root change
Depended on by
0aac9efcbeea 5544c8998aa7 6f66e397539c 72772aa01d6b 9e5fd161efc3 411ef051b94d c1a24672dbd5 0941bb8ac32b fad6152112b1 78c45d1a752e 4fe0a145144f 20969df44046 eba8bdd7ad5a 85ad9087a566 f849c7889471 5c4016b9c5eb 67634e22f48f 2b40cb9b87e1 f3b4fdeb2bc2 fe128fa67a06
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
6 atoms, 8 tree operations, 6 files

Browse the tree at this change

added .flow/jobs/isolation.sh +7 −0
1 +
# What the job can see of the machine (docs/m0.md §2).
2 +
echo "kernel: $(uname -r), cpus: $(nproc), user: $(id -u)"
3 +
echo "interfaces: $(tail -n +3 /proc/net/dev | cut -d: -f1 | tr -d ' ' | tr '\n' ' ')"
4 +
if wget -q -T 3 -O /dev/null http://1.1.1.1 2>/dev/null; then echo "network reachable: not isolated" >&2; exit 1; fi
5 +
echo "no network"
6 +
if touch /etc/flow-probe 2>/dev/null; then echo "rootfs writable" >&2; exit 1; fi
7 +
echo "rootfs read-only"
added .flow/jobs/layout.sh +5 −0
1 +
# The workspace has the crates and documents it should.
2 +
for f in Cargo.toml docs/m0.md crates/flow-core/src/pipeline.rs crates/flow-init/src/main.rs crates/flow/src/microvm.rs; do
3 +
    test -f "$f" || { echo "missing: $f" >&2; exit 1; }
4 +
    echo "found $f"
5 +
done
added .flow/jobs/size.sh +5 −0
1 +
# Lines of Rust per crate.
2 +
for c in crates/*/; do
3 +
    n=$(find "$c" -name '*.rs' -exec cat {} + | wc -l)
4 +
    printf '%-24s %6d lines\n' "$c" "$n"
5 +
done
added .flow/jobs/summary.sh +1 −0
1 +
echo "$PROJECT: every check passed on this state."
added .flow/jobs/todos.sh +4 −0
1 +
# Notes left in the code, for the log (they do not fail the job).
2 +
n=$(grep -rn -E 'TODO|FIXME|XXX' crates | wc -l)
3 +
echo "$n TODO/FIXME notes in crates/"
4 +
grep -rn -E 'TODO|FIXME|XXX' crates | head -20 || true
added .flow/pipeline.kdl +43 −0
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 +
job "summary" {
37 +
    sandbox "alpine"
38 +
    depends-on "layout" "todos" "size" "isolation"
39 +
    env {
40 +
        PROJECT "OxygenFlow"
41 +
    }
42 +
    exec "sh" "-eu" ".flow/jobs/summary.sh"
43 +
}