Linux runners refuse to invoke ./gradlew without the +x bit.
Gradle 9.4 multi-module setup with Kotlin DSL and version catalog. GitHub Actions builds on push and PR with JDK 25 (Temurin).