2023-02-10 02:08:22 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
set -eu
|
|
|
|
|
|
|
|
|
|
. "$(dirname "$0")/../../../ci/sub/lib.sh"
|
|
|
|
|
cd -- "$(dirname "$0")/../../.."
|
|
|
|
|
|
|
|
|
|
help() {
|
|
|
|
|
cat <<EOF
|
2023-02-10 03:23:00 +00:00
|
|
|
usage: $0 [-p|--push] [--latest] [--version=str]
|
2023-02-10 02:08:22 +00:00
|
|
|
EOF
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
main() {
|
|
|
|
|
while flag_parse "$@"; do
|
|
|
|
|
case "$FLAG" in
|
|
|
|
|
h|help)
|
|
|
|
|
help
|
|
|
|
|
return 0
|
|
|
|
|
;;
|
|
|
|
|
p|push)
|
|
|
|
|
flag_noarg && shift "$FLAGSHIFT"
|
|
|
|
|
PUSH=1
|
|
|
|
|
;;
|
|
|
|
|
latest)
|
|
|
|
|
flag_noarg && shift "$FLAGSHIFT"
|
|
|
|
|
LATEST=1
|
|
|
|
|
;;
|
2023-02-10 03:23:00 +00:00
|
|
|
version)
|
|
|
|
|
flag_reqarg && shift "$FLAGSHIFT"
|
|
|
|
|
VERSION=$FLAGARG
|
|
|
|
|
;;
|
2023-02-10 02:08:22 +00:00
|
|
|
*)
|
|
|
|
|
flag_errusage "unrecognized flag $FLAGRAW"
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
shift "$FLAGSHIFT"
|
|
|
|
|
|
|
|
|
|
if [ -z "${VERSION-}" ]; then
|
|
|
|
|
VERSION=$(readlink ./ci/release/build/latest)
|
|
|
|
|
fi
|
|
|
|
|
D2_DOCKER_IMAGE=${D2_DOCKER_IMAGE:-terrastruct/d2}
|
|
|
|
|
|
|
|
|
|
sh_c mkdir -p "./ci/release/build/$VERSION/docker"
|
2023-02-10 03:50:18 +00:00
|
|
|
sh_c cp \
|
|
|
|
|
"./ci/release/build/$VERSION/d2-$VERSION"-linux-*.tar.gz \
|
|
|
|
|
"./ci/release/build/$VERSION/docker/"
|
|
|
|
|
sh_c cp \
|
|
|
|
|
./ci/release/docker/entrypoint.sh \
|
|
|
|
|
"./ci/release/build/$VERSION/docker/entrypoint.sh"
|
2023-02-10 02:08:22 +00:00
|
|
|
|
|
|
|
|
flags='--load'
|
|
|
|
|
if [ -n "${PUSH-}" -o -n "${RELEASE-}" ]; then
|
|
|
|
|
flags='--push --platform linux/amd64,linux/arm64'
|
|
|
|
|
fi
|
|
|
|
|
if [ -n "${LATEST-}" -o -n "${RELEASE-}" ]; then
|
|
|
|
|
flags="$flags -t $D2_DOCKER_IMAGE:latest"
|
|
|
|
|
fi
|
|
|
|
|
sh_c docker buildx build $flags \
|
|
|
|
|
-t "$D2_DOCKER_IMAGE:$VERSION" \
|
|
|
|
|
-f ./ci/release/docker/Dockerfile "./ci/release/build/$VERSION/docker"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
main "$@"
|