mongo/evergreen/streams_image_build_and_pus...

90 lines
2.3 KiB
Bash

DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
. "$DIR/prelude.sh"
set -o errexit
REGISTRY="664315256653.dkr.ecr.us-east-1.amazonaws.com"
REPO="mongo/mongostream"
IMAGE="$REGISTRY/$REPO"
GITSHA="$github_commit"
ARCH="$packager_arch"
DISTRO="$packager_distro"
PATCH="$is_patch"
if [ "$ARCH" == "aarch64" ]; then
ARCH="arm64"
fi
if [ "$ARCH" == "x86_64" ]; then
ARCH="amd64"
fi
TAG_SUFFIX="$ARCH"
# Only amazon2023 distros are supported today
if [ "$DISTRO" != "amazon2023" ]; then
echo "Unsupported distro: $DISTRO" >&2
exit 1
fi
if [ "$DISTRO" == "amazon2023" ]; then
TAG_SUFFIX="$ARCH-al2023"
fi
if [ "$PATCH" ]; then
TAG_SUFFIX="$TAG_SUFFIX-$revision_order_id"
fi
attempts=0
max_attempts=4
if [ "$1" == "--push" ]; then
while ! aws ecr get-login-password --region us-east-1 | docker login --password-stdin --username AWS $REGISTRY; do
[ "$attempts" -ge "$max_attempts" ] && exit 1
((attempts++))
sleep 10
done
fi
# Build Image
MONGOD_PATH="$(find ./src -type f -name 'mongod')"
MONGO_PATH="$(find ./src -type f -name 'mongo')"
echo "Current mongod path: $MONGOD_PATH"
echo "Current mongo path: $MONGO_PATH"
mkdir -p ./src/bin
mv "$MONGOD_PATH" ./src/bin/mongod
mv "$MONGO_PATH" ./src/bin/mongo
# track asp-js-engine repo clone from evergreen modules
JS_ENGINE_PATH_ABS="$(pwd)"/src/asp-js-engine/asp-js-engine
cd src
activate_venv
setup_db_contrib_tool
# Build docker build args array
BUILD_ARGS=(--build-arg "BUILD_VERSION=$GITSHA-$TAG_SUFFIX")
# Only add JS_ENGINE_PATH build arg if the path exists
# Note: Path must be relative to the build context (src directory)
if [ -d "$JS_ENGINE_PATH_ABS" ]; then
# Make path relative to src directory (current directory after cd src)
JS_ENGINE_PATH_REL="asp-js-engine/asp-js-engine"
echo "JS_ENGINE_PATH exists: $JS_ENGINE_PATH_ABS"
echo "Using relative path for Docker: $JS_ENGINE_PATH_REL"
BUILD_ARGS+=(--build-arg "JS_ENGINE_PATH=$JS_ENGINE_PATH_REL")
else
echo "JS_ENGINE_PATH does not exist: $JS_ENGINE_PATH_ABS (skipping build arg)"
fi
docker build "${BUILD_ARGS[@]}" -t "$IMAGE" -f ./src/mongo/db/modules/enterprise/src/streams/build/Dockerfile.al2023 .
docker tag "$IMAGE" "$IMAGE:$GITSHA-$TAG_SUFFIX"
docker images
if [ "$1" == "--push" ]; then
docker push "$IMAGE:$GITSHA-$TAG_SUFFIX"
fi