-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathtest-in-docker.sh
More file actions
executable file
·83 lines (67 loc) · 1.89 KB
/
test-in-docker.sh
File metadata and controls
executable file
·83 lines (67 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/env bash
set -euo pipefail
IMAGE_NAME=${IMAGE_NAME:-transloadit-java-sdk-dev}
CACHE_DIR=.gradle-docker
ensure_docker() {
if ! command -v docker >/dev/null 2>&1; then
echo "Docker is required to run this script." >&2
exit 1
fi
if ! docker info >/dev/null 2>&1; then
if [[ -z "${DOCKER_HOST:-}" && -S "$HOME/.colima/default/docker.sock" ]]; then
export DOCKER_HOST="unix://$HOME/.colima/default/docker.sock"
fi
fi
if ! docker info >/dev/null 2>&1; then
echo "Docker daemon is not reachable. Start Docker (or Colima) and retry." >&2
exit 1
fi
}
configure_platform() {
if [[ -z "${DOCKER_PLATFORM:-}" ]]; then
local arch
arch=$(uname -m)
if [[ "$arch" == "arm64" || "$arch" == "aarch64" ]]; then
DOCKER_PLATFORM=linux/amd64
fi
fi
}
ensure_docker
configure_platform
if [[ $# -eq 0 ]]; then
RUN_CMD='set -e; ./gradlew --no-daemon assemble --stacktrace && ./gradlew --no-daemon check --stacktrace'
else
GRADLE_CMD=("./gradlew" "--no-daemon")
GRADLE_CMD+=("$@")
GRADLE_CMD+=("--stacktrace")
printf -v RUN_CMD '%q ' "${GRADLE_CMD[@]}"
RUN_CMD="set -e; ${RUN_CMD}"
fi
mkdir -p "$CACHE_DIR"
BUILD_ARGS=()
if [[ -n "${DOCKER_PLATFORM:-}" ]]; then
BUILD_ARGS+=(--platform "$DOCKER_PLATFORM")
fi
BUILD_ARGS+=(-t "$IMAGE_NAME" -f Dockerfile .)
docker build "${BUILD_ARGS[@]}"
DOCKER_ARGS=(
--rm
--user "$(id -u):$(id -g)"
-e GRADLE_USER_HOME=/workspace/$CACHE_DIR
-v "$PWD":/workspace
-w /workspace
)
if [[ -n "${DOCKER_PLATFORM:-}" ]]; then
DOCKER_ARGS+=(--platform "$DOCKER_PLATFORM")
fi
if [[ -f .env ]]; then
DOCKER_ARGS+=(--env-file "$PWD/.env")
fi
EXTRA_ENVS=(JAVA_SDK_E2E TRANSLOADIT_HOST TRANSLOADIT_KEY TRANSLOADIT_SECRET)
for var in "${EXTRA_ENVS[@]}"; do
value="${!var:-}"
if [[ -n "$value" ]]; then
DOCKER_ARGS+=(-e "$var=$value")
fi
done
exec docker run "${DOCKER_ARGS[@]}" "$IMAGE_NAME" bash -lc "$RUN_CMD"