Added startup setup
This commit is contained in:
55
release.sh
Executable file
55
release.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
BINARY=$(cargo metadata --no-deps --format-version 1 | python3 -c "import sys,json; print(json.load(sys.stdin)['packages'][0]['name'])")
|
||||
VERSION=$(cargo metadata --no-deps --format-version 1 | python3 -c "import sys,json; print(json.load(sys.stdin)['packages'][0]['version'])")
|
||||
OUT_DIR="dist"
|
||||
|
||||
TARGETS=(
|
||||
"x86_64-unknown-linux-musl:linux-x86_64"
|
||||
"aarch64-unknown-linux-musl:linux-aarch64"
|
||||
"aarch64-apple-darwin:macos-aarch64"
|
||||
)
|
||||
|
||||
echo "Building $BINARY v$VERSION"
|
||||
echo ""
|
||||
|
||||
# Ensure rustup targets are installed
|
||||
rustup target add \
|
||||
x86_64-unknown-linux-musl \
|
||||
aarch64-unknown-linux-musl \
|
||||
aarch64-apple-darwin 2>/dev/null
|
||||
|
||||
mkdir -p "$OUT_DIR"
|
||||
# Clean previous release artifacts
|
||||
rm -f "$OUT_DIR/$BINARY"-*
|
||||
|
||||
for entry in "${TARGETS[@]}"; do
|
||||
RUST_TARGET="${entry%%:*}"
|
||||
LABEL="${entry##*:}"
|
||||
ARTIFACT="$OUT_DIR/${BINARY}-${LABEL}"
|
||||
|
||||
echo "── $LABEL ($RUST_TARGET)"
|
||||
|
||||
case "$RUST_TARGET" in
|
||||
x86_64-unknown-linux-musl)
|
||||
CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=x86_64-linux-musl-gcc \
|
||||
cargo build --release --target "$RUST_TARGET" --quiet
|
||||
;;
|
||||
aarch64-unknown-linux-musl)
|
||||
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-musl-gcc \
|
||||
cargo build --release --target "$RUST_TARGET" --quiet
|
||||
;;
|
||||
aarch64-apple-darwin)
|
||||
cargo build --release --target "$RUST_TARGET" --quiet
|
||||
;;
|
||||
esac
|
||||
|
||||
cp "target/$RUST_TARGET/release/$BINARY" "$ARTIFACT"
|
||||
SIZE=$(du -sh "$ARTIFACT" | cut -f1)
|
||||
echo " → $ARTIFACT ($SIZE)"
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "Done. Artifacts in $OUT_DIR/:"
|
||||
ls -lh "$OUT_DIR/$BINARY"-*
|
||||
Reference in New Issue
Block a user