relay/build.sh

81 lines
2.1 KiB
Bash
Raw Normal View History

2020-03-22 01:29:59 +00:00
#!/usr/bin/env bash
BUILD_DATE=$(date)
VERSION=$1
2020-03-22 21:32:42 +00:00
MIGRATIONS=$2
2020-03-22 01:29:59 +00:00
function require() {
if [ "$1" = "" ]; then
echo "input '$2' required"
print_help
exit 1
fi
}
function print_help() {
echo "build.sh"
echo ""
echo "Usage:"
2020-03-22 21:32:42 +00:00
echo " build.sh [version] [migrations]"
2020-03-22 01:29:59 +00:00
echo ""
echo "Args:"
echo " version: The version of the current container"
2020-03-22 21:32:42 +00:00
echo " migrations: (optional) Whether to build the migrations container as well"
2020-03-22 01:29:59 +00:00
}
require "$VERSION" "version"
2020-04-18 19:51:16 +00:00
if ! docker run --rm -it arm64v8/ubuntu:19.10 /bin/bash -c 'echo "docker is configured correctly"'; then
2020-04-14 00:48:35 +00:00
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
2020-04-18 19:51:16 +00:00
if ! which cross; then
cargo intall cross
fi
2020-03-22 01:29:59 +00:00
set -xe
cross build \
--target aarch64-unknown-linux-musl \
--release
mkdir -p artifacts
rm -rf artifacts/relay
2020-03-22 01:29:59 +00:00
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}" \
2020-03-22 21:18:36 +00:00
-f Dockerfile.arm64v8 \
2020-03-22 01:29:59 +00:00
-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"
2020-03-22 21:32:42 +00:00
if [ "${MIGRATIONS}" = "migrations" ]; then
rm -rf artifacts/migrations
cp -r ./migrations artifacts/migrations
2020-03-22 21:32:42 +00:00
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