Pin platform tools and use the upstream debug unit task
Some checks failed
review/security-claude Pass at 3094fc8c; no blocking findings
review/code-claude Pass at 3094fc8c; no blocking findings
PR / pre-commit (pull_request) Has been cancelled
PR / build (pull_request) Has been cancelled

This commit is contained in:
justinzeus 2026-10-22 12:58:38 +02:00
parent 3d6f8bae1a
commit 3094fc8cf0
3 changed files with 20 additions and 6 deletions

View file

@ -15,7 +15,7 @@ apk-debug: build-image
@bash docker/gradle.sh debug assembleDefaultDebug
test: build-image
@bash docker/gradle.sh release testDefaultReleaseUnitTest
@bash docker/gradle.sh debug testDefaultDebugUnitTest
release-tag:
@bash docker/release-tag.sh

View file

@ -12,6 +12,13 @@ RUN curl -fsSL https://dl.google.com/android/repository/commandlinetools-linux-1
&& rm -rf /tmp/tools.zip /tmp/android-tools \
&& yes | sdkmanager --licenses >/dev/null \
&& sdkmanager 'platforms;android-37.0' 'build-tools;36.0.0' \
&& while IFS='=' read -r name value; do \
if [ "$name" = Pkg.Revision ]; then test "$value" = 2 || exit 1; fi; \
done < "$ANDROID_HOME/platforms/android-37.0/source.properties" \
&& curl -fsSL https://dl.google.com/android/repository/platform-tools_r37.0.1-linux.zip -o /tmp/platform-tools.zip \
&& echo '477254aa5f903c15cf51001717bdf347fb6b53e0 /tmp/platform-tools.zip' | sha1sum -c - \
&& unzip -q /tmp/platform-tools.zip -d "$ANDROID_HOME" \
&& rm /tmp/platform-tools.zip \
&& mkdir -m 1777 /gradle
ENV GRADLE_USER_HOME=/gradle HOME=/tmp
COPY signing.init.gradle /opt/wolfskin/signing.init.gradle

View file

@ -6,7 +6,7 @@ host needs Docker, GNU Make, Bash, and Git, not Java or the Android SDK.
```sh
git fetch origin --tags
make apk # clean, signed default release: three ABI splits + universal
make test # upstream testDefaultReleaseUnitTest in the same image
make test # upstream testDefaultDebugUnitTest in the same image, no secrets
make apk-debug # default debug, no secrets; MPV stub and no extra codec decoders
```
@ -17,12 +17,19 @@ use the catalog's exact Wholphin extension version (currently `0.2.4`). Do not
place local extension AARs in `app/libs`: upstream prefers them over the pinned
GitHub Packages dependencies.
Upstream enables JVM unit tests only for debug variants; there is no
`testDefaultReleaseUnitTest` task. `make test` uses the closest default-flavor
task without changing upstream's test configuration.
## Toolchain and disk use
`Dockerfile` pins Temurin JDK `21.0.11+10` by image digest, Android command-line
tools `23.0` by archive and checksum, SDK platform `37.0`, and build-tools
`36.0.0`. Gradle comes from the committed wrapper. The image is built for
`linux/amd64`; the default local image tag is `wolfskin-build:sdk37-jdk21`.
`Dockerfile` pins Temurin JDK `21.0.11+10` by image digest, command-line tools
`23.0` and platform-tools `37.0.1` by archive and checksum, and build-tools
`36.0.0` by SDK package version. The SDK manager registers platform `37.0` and
its licenses; the build rejects any platform revision other than 2. An SDK
revision upgrade therefore requires a deliberate Dockerfile update.
Gradle comes from the committed wrapper. The image is built for `linux/amd64`;
the default local image tag is `wolfskin-build:sdk37-jdk21`.
Upstream's build timestamp means APKs are not byte-for-byte reproducible.
Gradle downloads and caches live in the named volume `wolfskin-gradle`, not