From 0daeda0784ad8d2111502b9e29a714e0a205b321 Mon Sep 17 00:00:00 2001 From: Mark Rapson Date: Mon, 10 Aug 2026 22:27:58 +0100 Subject: [PATCH] Derive render Java version from Minecraft --- .gitea/workflows/build-readme.yml | 30 +++++++++++-------- .../resolve_latest_minecraft_release.py | 9 ++++++ 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/build-readme.yml b/.gitea/workflows/build-readme.yml index 501e50d..b14a03b 100644 --- a/.gitea/workflows/build-readme.yml +++ b/.gitea/workflows/build-readme.yml @@ -18,19 +18,6 @@ jobs: with: python-version: "3.11" - - name: Set up Java - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: "25" - - - name: Set up Gradle - run: | - GRADLE_VERSION=8.10.2 - curl -fsSL -o /tmp/gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" - sudo unzip -q /tmp/gradle.zip -d /opt - echo "/opt/gradle-${GRADLE_VERSION}/bin" >> "$GITHUB_PATH" - - name: Resolve latest Minecraft release run: | mkdir -p build @@ -41,7 +28,24 @@ jobs: shell: bash run: | release=$(head -n 1 build/minecraft-version.txt) + snapshot=$(sed -n '2s/^snapshot=//p' build/minecraft-version.txt) + java_version=$(sed -n '3s/^java_version=//p' build/minecraft-version.txt) echo "release=$release" >> "$GITHUB_OUTPUT" + echo "snapshot=$snapshot" >> "$GITHUB_OUTPUT" + echo "java_version=$java_version" >> "$GITHUB_OUTPUT" + + - name: Set up Java + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: ${{ steps.minecraft_version.outputs.java_version }} + + - name: Set up Gradle + run: | + GRADLE_VERSION=8.10.2 + curl -fsSL -o /tmp/gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" + sudo unzip -q /tmp/gradle.zip -d /opt + echo "/opt/gradle-${GRADLE_VERSION}/bin" >> "$GITHUB_PATH" - name: Build readme run: python build/scripts/build_readme.py --pack-root resourcepack --output-dir build diff --git a/build/scripts/resolve_latest_minecraft_release.py b/build/scripts/resolve_latest_minecraft_release.py index 6b4dcbd..e06b945 100644 --- a/build/scripts/resolve_latest_minecraft_release.py +++ b/build/scripts/resolve_latest_minecraft_release.py @@ -15,8 +15,17 @@ def main() -> int: latest_release = manifest["latest"]["release"] latest_snapshot = manifest["latest"]["snapshot"] + latest_release_entry = next(version for version in manifest["versions"] if version["id"] == latest_release) + with urlopen(latest_release_entry["url"], timeout=30) as response: + version_metadata = json.load(response) + + java_version = version_metadata.get("javaVersion", {}).get("majorVersion") + if not isinstance(java_version, int): + raise RuntimeError(f"Latest Minecraft release {latest_release} does not declare a javaVersion.majorVersion") + print(latest_release) print(f"snapshot={latest_snapshot}") + print(f"java_version={java_version}") return 0