repositories / smith
smith
There are many coding harnesses - but this one is fast
owned by admin
.ci/dependency-targets.kdl
Rawjob "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}"
}
}