Keep package targets explicit and reject existing archive symlinks
Sized Linux checks / Linux AMD64 / Rust 1.88.0 (push) Successful in 4m57s
Sized Linux checks / Linux AMD64 / Rust 1.88.0 (pull_request) Successful in 5m0s

This commit is contained in:
2026-10-10 04:00:52 -04:00
parent 5f0b11ea2e
commit 77b11a8c29
3 changed files with 15 additions and 2 deletions
+7
View File
@@ -29,4 +29,11 @@ if "$repo_root/scripts/release.sh" --output-dir "$check_root/bundle" > "$check_r
exit 1
fi
grep -q 'Refusing to replace' "$check_root/repeat.log"
ln -s "$check_root/untouched" "$check_root/linked.tar.gz"
if "$repo_root/scripts/release.sh" --output-dir "$check_root/linked" > "$check_root/linked.log" 2>&1; then
printf 'Packaging unexpectedly followed an existing archive symlink.\n' >&2
exit 1
fi
grep -q 'Refusing to replace' "$check_root/linked.log"
test ! -e "$check_root/untouched"
printf 'Archive contents, checksum, extracted CLI and overwrite guard passed.\n'
+2 -2
View File
@@ -16,12 +16,12 @@ elif [[ $# != 0 ]]; then
fi
[[ $destination == /* ]] || { printf 'Output directory must be absolute.\n' >&2; exit 2; }
for output in "$destination" "$destination.tar.gz" "$destination.tar.gz.sha256"; do
[[ ! -e $output ]] || { printf 'Refusing to replace %s\n' "$output" >&2; exit 1; }
[[ ! -e $output && ! -L $output ]] || { printf 'Refusing to replace %s\n' "$output" >&2; exit 1; }
done
target_dir=${CARGO_TARGET_DIR:-"$repo_root/target"}
[[ $target_dir == /* ]] || target_dir="$repo_root/$target_dir"
cargo build --locked --release --target "$target"
cargo build --locked --release --target "$target" --target-dir "$target_dir"
binary="$target_dir/$target/release/sized"
mkdir -p "$destination"
install -m 755 "$binary" "$destination/sized"