mirror of
https://git.asonix.dog/asonix/relay.git
synced 2024-12-24 19:34:52 +00:00
80 lines
2.1 KiB
Bash
Executable file
80 lines
2.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
BUILD_DATE=$(date)
|
|
VERSION=$1
|
|
MIGRATIONS=$2
|
|
|
|
function require() {
|
|
if [ "$1" = "" ]; then
|
|
echo "input '$2' required"
|
|
print_help
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function print_help() {
|
|
echo "build.sh"
|
|
echo ""
|
|
echo "Usage:"
|
|
echo " build.sh [version] [migrations]"
|
|
echo ""
|
|
echo "Args:"
|
|
echo " version: The version of the current container"
|
|
echo " migrations: (optional) Whether to build the migrations container as well"
|
|
}
|
|
|
|
require "$VERSION" "version"
|
|
|
|
if ! docker run --rm -it arm64v8/ubuntu:19.10 /bin/bash -c 'echo "docker is configured correctly"'; then
|
|
echo "docker is not configured to run on qemu-emulated architectures, fixing will require sudo"
|
|
sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
|
fi
|
|
|
|
if ! which cross; then
|
|
cargo intall cross
|
|
fi
|
|
|
|
set -xe
|
|
|
|
cross build \
|
|
--target aarch64-unknown-linux-musl \
|
|
--release
|
|
|
|
mkdir -p artifacts
|
|
rm -rf artifacts/relay
|
|
cp ./target/aarch64-unknown-linux-musl/release/relay artifacts/relay
|
|
|
|
docker build \
|
|
--pull \
|
|
--no-cache \
|
|
--build-arg BUILD_DATE="${BUILD_DATE}" \
|
|
--build-arg TAG="${TAG}" \
|
|
-f Dockerfile.arm64v8 \
|
|
-t "asonix/relay:${VERSION}-arm64v8" \
|
|
-t "asonix/relay:latest-arm64v8" \
|
|
-t "asonix/relay:latest" \
|
|
./artifacts
|
|
|
|
docker push "asonix/relay:${VERSION}-arm64v8"
|
|
docker push "asonix/relay:latest-arm64v8"
|
|
docker push "asonix/relay:latest"
|
|
|
|
if [ "${MIGRATIONS}" = "migrations" ]; then
|
|
rm -rf artifacts/migrations
|
|
cp -r ./migrations artifacts/migrations
|
|
|
|
docker build \
|
|
--pull \
|
|
--no-cache \
|
|
--build-arg BUILD_DATE="${BUILD_DATE}" \
|
|
--build-arg TAG="${TAG}" \
|
|
-f Dockerfile.migrations.arm64v8 \
|
|
-t "asonix/relay-migrations:${VERSION}-arm64v8" \
|
|
-t "asonix/relay-migrations:latest-arm64v8" \
|
|
-t "asonix/relay-migrations:latest" \
|
|
./artifacts
|
|
|
|
docker push "asonix/relay-migrations:${VERSION}-arm64v8"
|
|
docker push "asonix/relay-migrations:latest-arm64v8"
|
|
docker push "asonix/relay-migrations:latest"
|
|
fi
|