-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathmake
More file actions
executable file
·40 lines (37 loc) · 1.5 KB
/
Copy pathmake
File metadata and controls
executable file
·40 lines (37 loc) · 1.5 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
#!/usr/bin/env bash
set -euox pipefail
# NB: "docker build -v $PWD:/project:Z" works in Podman, but not in Docker (at least not in the version available on GCB)
if command -v podman >/dev/null 2>&1; then
CONTAINER=podman
VOL_SUFFIX=:Z
else
CONTAINER=docker
VOL_SUFFIX=
fi
$CONTAINER build -f Dockerfile-build -t minecraft-storeys-maker-build .
if command -v java >/dev/null 2>&1 && command -v node >/dev/null 2>&1 && command -v npm >/dev/null 2>&1; then
./gradlew --no-daemon build -PexcludeTests="**/SeleniumTest*"
else
# Fallback for environments without a local Java/Node toolchain.
# --network host avoids intermittent TLS download corruption observed with rootless Podman networking.
BUILD_MAX_RETRIES=3
BUILD_ATTEMPT=1
until [ $BUILD_ATTEMPT -gt $BUILD_MAX_RETRIES ]; do
if $CONTAINER run --network host --rm -v $PWD:/project$VOL_SUFFIX minecraft-storeys-maker-build \
./gradlew --no-daemon build -PexcludeTests="**/SeleniumTest*"; then
break
fi
if [ $BUILD_ATTEMPT -eq $BUILD_MAX_RETRIES ]; then
echo "Gradle build failed after $BUILD_MAX_RETRIES attempts."
exit 1
fi
echo "Gradle build attempt $BUILD_ATTEMPT failed; retrying..."
BUILD_ATTEMPT=$((BUILD_ATTEMPT + 1))
done
fi
# NB --format=docker because the "oci" default looses the mc-health HEALTHCHECK of the parent image
if command -v podman >/dev/null 2>&1; then
podman build -f Dockerfile --format=docker -t minecraft-storeys-maker .
else
docker build -f Dockerfile -t minecraft-storeys-maker .
fi