job "dependency-targets" { image "docker.io/library/rust:latest" trigger { schedule "30 4 * * *" } matrix { target "x86_64-pc-windows-msvc" "aarch64-pc-windows-msvc" "x86_64-apple-darwin" "aarch64-apple-darwin" "aarch64-unknown-linux-gnu" } cache "cargo-home" { path ".cargo-home" key { file "Cargo.lock" } } cache "target" { path "target" key { file "Cargo.lock" } } run "export CARGO_HOME=\"$PWD/.cargo-home\"" run "rustup toolchain install nightly --profile minimal --no-self-update" run "rustup target add --toolchain stable ${target}" // Full library graph on Linux ARM64; core graph elsewhere until native SDKs exist. run "if [ '${target}' = aarch64-unknown-linux-gnu ]; then apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc-aarch64-linux-gnu libc6-dev-arm64-cross; fi" run "mkdir -p target/dependency-targets; set +e; set --; if [ '${target}' != aarch64-unknown-linux-gnu ]; then set -- -p smith-core; fi; failed=0; for mode in locked fresh-compatible direct-minimum; do cargo x deps --verify \"$mode\" --target '${target}' \"$@\" > \"target/dependency-targets/$mode.log\" 2>&1; status=$?; cat \"target/dependency-targets/$mode.log\"; printf '%s\\n' \"$status\" > \"target/dependency-targets/$mode.exit\"; if [ \"$status\" -ne 0 ]; then failed=1; fi; done; test \"$failed\" -eq 0" artifact "target-resolution-evidence" { path "target/dependency-targets" after-failure true } publish "site" { from "target/dependency-targets" to "smith/dependency-targets/${rev}/${target}" } }