Files
sized/scripts/check-linux-container.sh
gamertan 5f0b11ea2e
Sized Linux checks / Linux AMD64 / Rust 1.88.0 (push) Successful in 4m52s
Sized Linux checks / Linux AMD64 / Rust 1.88.0 (pull_request) Successful in 4m56s
Repair release archives and document current Sized distribution
2026-10-10 03:51:35 -04:00

33 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
test "$(uname -s)" = Linux
test "$(id -u)" != 0
printf 'Linux checks: uid=%s architecture=%s\n' "$(id -u)" "$(uname -m)"
rustc --version
cargo --version
# Only source inputs are copied. Cargo output and all fixtures disappear with
# the container; the host checkout is read-only and no personal tree is scanned.
check_root=$(mktemp -d /tmp/sized-check.XXXXXX)
source_root=${SIZED_TEST_SOURCE:-/source}
cp "$source_root/Cargo.toml" "$source_root/Cargo.lock" "$check_root/"
cp -R "$source_root/src" "$source_root/tests" "$source_root/benches" "$check_root/"
cp "$source_root/LICENSE" "$source_root/README.md" "$source_root/MANUAL.md" "$check_root/"
mkdir "$check_root/scripts"
cp "$source_root/scripts/release.sh" "$source_root/scripts/check-release.sh" "$check_root/scripts/"
export SIZED_SOURCE_REVISION="$(git -C "$source_root" rev-parse HEAD 2>/dev/null || printf unknown)"
cd "$check_root"
cargo fmt --all -- --check
cargo test --locked
cargo test --locked --test linux_mount -- --ignored
cargo clippy --locked --all-targets -- -D warnings
cargo build --locked --release
fixture_root=$(mktemp -d /tmp/sized-release.XXXXXX)
printf 'Linux release smoke test\n' > "$fixture_root/payload"
./target/release/sized --version
./target/release/sized "$fixture_root" --threads 2 --one-file-system --apparent --format json
./scripts/check-release.sh
printf 'Linux checks passed.\n'