Files
iam-login/scripts/gradle-in-docker

34 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
repo_root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
cache_dir=${IAM_GRADLE_CACHE:-${XDG_CACHE_HOME:-$HOME/.cache}/iam-login/gradle}
mkdir -p -- "$cache_dir"
cache_dir=$(cd -- "$cache_dir" && pwd)
docker_cmd=(docker)
if [[ ${IAM_DOCKER_USE_SUDO:-0} == 1 ]]; then
docker_cmd=(sudo -n docker)
fi
if (($# == 0)); then
set -- test
fi
"$repo_root/scripts/frontend-in-docker"
# Linux host networking is needed for Testcontainers' published ports.
exec "${docker_cmd[@]}" run --rm --network host \
--cpus "${IAM_BUILD_CPUS:-4}" --memory "${IAM_BUILD_MEMORY:-8g}" \
--user "$(id -u):$(id -g)" \
--group-add "$(stat -c %g /var/run/docker.sock)" \
-e LANG=C.UTF-8 \
-e HOME=/gradle \
-e JAVA_TOOL_OPTIONS=-Duser.home=/gradle \
-e GRADLE_USER_HOME=/gradle \
-e TESTCONTAINERS_HOST_OVERRIDE=127.0.0.1 \
-v "$cache_dir:/gradle" \
-v "$repo_root:/workspace" \
-v /var/run/docker.sock:/var/run/docker.sock \
-w /workspace --entrypoint /workspace/gradlew \
ghcr.io/graalvm/native-image-community@sha256:0d936f32bb8acb5bc60c41b33e05f064d7a6aaf36b726538296c54949bd4a3c0 \
--no-daemon --max-workers="${IAM_BUILD_CPUS:-4}" "$@"