dropshell/source/multibuild.sh
Your Name f45baa8362
Some checks failed
Dropshell Test / Build_and_Test (push) Failing after 1m18s
Craziness with multiarch
2025-05-25 22:12:14 +12:00

48 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# build amd64 and arm64 versions of dropshell, to:
# build/dropshell.amd64
# build/dropshell.arm64
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
OUTPUT_DIR="$SCRIPT_DIR/output"
DOCKERFILE="$SCRIPT_DIR/Dockerfile.multiarch"
mkdir -p "$OUTPUT_DIR"
# Ensure buildx is available
if ! docker buildx version &>/dev/null; then
echo "Docker Buildx is required. Please install Docker Buildx." >&2
exit 1
fi
# Build for x86_64
DOCKER_BUILDKIT=1 docker buildx build --platform linux/amd64 \
-f "$DOCKERFILE" \
--output type=local,dest="$OUTPUT_DIR/amd64_tmp" \
--cache-from type=local,src=/tmp/dropshell-cache \
--cache-to type=local,dest=/tmp/dropshell-cache,mode=max \
"$SCRIPT_DIR"
mv "$OUTPUT_DIR/amd64_tmp/dropshell" "$OUTPUT_DIR/dropshell.amd64"
rm -rf "$OUTPUT_DIR/amd64_tmp"
echo "Built output/dropshell.amd64"
# Build for aarch64
DOCKER_BUILDKIT=1 docker buildx build --platform linux/arm64 \
-f "$DOCKERFILE" \
--output type=local,dest="$OUTPUT_DIR/arm64_tmp" \
--cache-from type=local,src=/tmp/dropshell-cache \
--cache-to type=local,dest=/tmp/dropshell-cache,mode=max \
"$SCRIPT_DIR"
mv "$OUTPUT_DIR/arm64_tmp/dropshell" "$OUTPUT_DIR/dropshell.arm64"
rm -rf "$OUTPUT_DIR/arm64_tmp"
echo "Built output/dropshell.arm64"
echo "Builds complete:"
ls -lh "$OUTPUT_DIR"/dropshell.*