#!/usr/bin/env bash # Run the workspace tests on Linux (in a container), with build caches in named volumes. # Extra arguments are passed to `cargo test`. set -euo pipefail root="$(cd "$(dirname "$0")/.." && pwd)" engine="${CONTAINER_ENGINE:-docker}" "$engine" build -q -t walknot-test -f "$root/ci/test.Containerfile" "$root/ci" >/dev/null exec "$engine" run --rm \ -v "$root":/src:z \ -v walknot-target:/target \ -v walknot-cargo-registry:/usr/local/cargo/registry \ -v walknot-go:/root/go \ ${WALKNOT_TEST_S3_BUCKET:+-e WALKNOT_TEST_S3_BUCKET -e WALKNOT_TEST_S3_ENDPOINT -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_REGION} \ ${WALKNOT_TEST_REDIS:+-e WALKNOT_TEST_REDIS} \ -e CARGO_INCREMENTAL=0 -e CARGO_PROFILE_DEV_DEBUG=line-tables-only -e CARGO_NET_GIT_FETCH_WITH_CLI=true \ ${KNOT_TEST_STORAGE:+-e KNOT_TEST_STORAGE} \ --network host \ walknot-test cargo test --workspace --no-fail-fast "$@"