job "nightly" { image "docker.io/library/rust:latest" trigger { schedule "0 3 * * *" } // Children run in order; successful stages save caches for the next. matrix { phase "bootstrap" "0" "1" "2" "3" "4" "5" "6" "7" "report" "verdict" } cache "cargo-home" { path ".cargo-home" key { file "Cargo.lock" } } cache "target" { path "target" key { file "Cargo.lock" } } cache "valgrind" { path "target/tools/valgrind" key { file ".ci/nightly.kdl" } } run "export CARGO_HOME=\"$PWD/.cargo-home\" PATH=\"$PWD/.cargo-home/bin:$PATH\"" run "rustup target add wasm32-wasip2" run "rustup component add llvm-tools" run "V=$PWD/target/tools/valgrind; test -x $V/bin/valgrind || (mkdir -p target/tools/src && curl -sSL https://sourceware.org/pub/valgrind/valgrind-3.25.1.tar.bz2 | tar -xj -C target/tools/src && cd target/tools/src/valgrind-3.25.1 && ./configure -q --prefix=$V >/dev/null && make -s -j$(nproc) >/dev/null && make -s install >/dev/null)" // Bootstrap owns tools, baseline tests, Miri; shards defer only findings. // Report publishes before verdict fails the parent on missed/timeouts. run "PATH=$PWD/target/tools/valgrind/bin:$PATH cargo run --locked -p xtask -- nightly ${phase}" artifact "mutation-summary" { path "target/nightly-summary" after-failure true } publish "site" { from "target/nightly/${phase}" to "smith/nightly/${rev}/${phase}" } }