v0.35.0
This commit is contained in:
1 parent
2c03fcf248
commit
d3b492874b
95 files changed
+1628
-743
No files matched your search
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$ROOT"
|
||||
|
||||
DIST="$ROOT/dist"
|
||||
CARGO_TARGET_DIR="${CARGO_TARGET_DIR:-$ROOT/target}"
|
||||
export CARGO_TARGET_DIR
|
||||
|
||||
fail() {
|
||||
printf 'error: %s\n' "$*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
need() {
|
||||
command -v "$1" >/dev/null 2>&1 || fail "$1 is required"
|
||||
}
|
||||
|
||||
need cargo
|
||||
need rustc
|
||||
need python3
|
||||
need sha256sum
|
||||
|
||||
python3 -c 'import sys; sys.exit(0 if sys.version_info >= (3,10) else 1)' \
|
||||
|| fail 'Python 3.10+ is required'
|
||||
|
||||
[[ -f Cargo.toml ]] || fail 'run this script from the RustProxy project root'
|
||||
[[ -f Cargo.lock ]] || fail 'Cargo.lock is required for a reproducible release'
|
||||
[[ -f scripts/preflight.py ]] || fail 'scripts/preflight.py is missing'
|
||||
|
||||
VERSION="$(python3 scripts/version.py)"
|
||||
HOST="$(rustc -vV | sed -n 's/^host: //p')"
|
||||
[[ -n "$VERSION" ]] || fail 'could not determine project version'
|
||||
[[ -n "$HOST" ]] || fail 'could not determine Rust host target'
|
||||
|
||||
printf 'RustProxy %s release build for %s\n' "$VERSION" "$HOST"
|
||||
python3 scripts/preflight.py
|
||||
|
||||
cargo fmt --all -- --check
|
||||
cargo test --locked --all-targets
|
||||
cargo clippy --locked --all-targets -- -D warnings
|
||||
rm -rf "$CARGO_TARGET_DIR/release"
|
||||
cargo build --locked --release
|
||||
|
||||
BIN="$CARGO_TARGET_DIR/release/rust-proxy"
|
||||
[[ -x "$BIN" ]] || fail "release binary was not created: $BIN"
|
||||
|
||||
ACTUAL_VERSION="$($BIN --version)"
|
||||
printf 'Built: %s\n' "$ACTUAL_VERSION"
|
||||
|
||||
rm -rf "$DIST"
|
||||
mkdir -p "$DIST"
|
||||
|
||||
ARTIFACT="rust-proxy-${VERSION}-${HOST}"
|
||||
cp "$BIN" "$DIST/$ARTIFACT"
|
||||
chmod 0755 "$DIST/$ARTIFACT"
|
||||
sha256sum "$DIST/$ARTIFACT" > "$DIST/$ARTIFACT.sha256"
|
||||
|
||||
SOURCE_ZIP="$DIST/RustProxy-${VERSION}-source.zip"
|
||||
python3 make_zip.py "$SOURCE_ZIP"
|
||||
sha256sum "$SOURCE_ZIP" > "$SOURCE_ZIP.sha256"
|
||||
|
||||
printf '\nRelease ready:\n'
|
||||
printf ' binary: %s\n' "$DIST/$ARTIFACT"
|
||||
printf ' checksum: %s\n' "$DIST/$ARTIFACT.sha256"
|
||||
printf ' source zip: %s\n' "$SOURCE_ZIP"
|
||||
printf ' checksum: %s\n' "$SOURCE_ZIP.sha256"
|
||||
Reference in new issue
Block a user