Serialize Gradle and test runs

This commit is contained in:
hgranthorner
2026-08-06 13:07:31 -04:00
parent 427269ad78
commit 0658550d09
5 changed files with 86 additions and 14 deletions

View File

@@ -13,11 +13,22 @@
# and throw UnsupportedClassVersionError on 17.
set -euo pipefail
cd "$(dirname "$0")"
source ./gradle-lock.sh
if command -v mise >/dev/null 2>&1; then
exec mise exec -- ./gradlew "$@"
# `--stop` is an explicit recovery operation; it must be able to stop a
# daemon even when a stale lock was left by an interrupted run.
if [[ "${1:-}" != "--stop" ]]; then
jai_gradle_lock_acquire
trap jai_gradle_lock_release EXIT
trap 'exit 130' INT
trap 'exit 143' TERM
fi
status=0
if command -v mise >/dev/null 2>&1; then
mise exec -- ./gradlew "$@" || status=$?
else
# Fallback: mise is not installed. Try an already-set JAVA_HOME, then any
# JDK 21 that Gradle has auto-provisioned.
if [ ! -x "${JAVA_HOME:-}/bin/java" ]; then
@@ -35,4 +46,9 @@ if [ ! -x "${JAVA_HOME:-}/bin/java" ]; then
exit 1
fi
exec ./gradlew "$@"
./gradlew "$@" || status=$?
fi
jai_gradle_lock_release
trap - EXIT INT TERM
exit "$status"