OXYGENHUB

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 +
}