Luigit
repositories / smith

smith

There are many coding harnesses - but this one is fast

owned by admin

.ci/dependency-targets.kdl

Raw
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}"
  }
}