Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 86 additions & 4 deletions .github/workflows/deploy-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -287,12 +287,28 @@ jobs:
with:
ref: ${{ needs.preflight.outputs.release_sha }}

- name: Install pinned Java 25 Mavenizer runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '25.0.3+9.0.LTS'

- name: Install pinned Java 8 launcher toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '8.0.502+7'

- name: Install target Java toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: ${{ needs.preflight.outputs.java_setup_version }}

- name: Record target Java toolchain path
shell: bash
run: echo "ORESPAWN_TARGET_JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"

- name: Install separate Java for Gradle
if: needs.preflight.outputs.install_gradle_java == 'true'
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
Expand All @@ -303,22 +319,48 @@ jobs:
- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6

- name: Resolve explicit Gradle Java installations
id: java-paths
shell: bash
run: |
set -euo pipefail
candidates=(
"$JAVA_HOME_25_X64"
"$JAVA_HOME_8_X64"
"$ORESPAWN_TARGET_JAVA_HOME"
"$JAVA_HOME"
)
paths=
for candidate in "${candidates[@]}"; do
test -x "$candidate/bin/java"
canonical="$(cd "$candidate" && pwd -P)"
if [[ ",$paths," != *",$canonical,"* ]]; then
paths="${paths:+$paths,}$canonical"
fi
done
echo "paths=$paths" >> "$GITHUB_OUTPUT"

- name: Build, test, and audit once
env:
LOADER_NAME: ${{ needs.preflight.outputs.loader_name }}
run: |
set -euo pipefail
chmod +x ./gradlew
java_args=(
"-Dorg.gradle.java.installations.paths=${{ steps.java-paths.outputs.paths }}"
-Dorg.gradle.java.installations.auto-detect=false
-Dorg.gradle.java.installations.auto-download=false
)
if [[ "$LOADER_NAME" == "neoforge" ]]; then
# NeoGradle resolves model inputs during configuration under build/tmp.
# Cleaning in the same invocation removes those inputs before setup runs.
./gradlew clean --no-daemon --stacktrace --max-workers=2
./gradlew clean --no-daemon --stacktrace --max-workers=2 "${java_args[@]}"
./gradlew check build javadoc verifyReleaseArtifacts writeReleaseChecksums \
--no-daemon --stacktrace --max-workers=2
--no-daemon --stacktrace --max-workers=2 "${java_args[@]}"
else
# Preserve the established Forge release lifecycle.
./gradlew clean check build javadoc verifyReleaseArtifacts writeReleaseChecksums \
--no-daemon --stacktrace
--no-daemon --stacktrace "${java_args[@]}"
fi

- name: Stage the immutable release artifact
Expand Down Expand Up @@ -455,12 +497,28 @@ jobs:
with:
ref: ${{ needs.preflight.outputs.release_sha }}

- name: Install pinned Java 25 Mavenizer runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '25.0.3+9.0.LTS'

- name: Install pinned Java 8 launcher toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '8.0.502+7'

- name: Install target Java toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: ${{ needs.preflight.outputs.java_setup_version }}

- name: Record target Java toolchain path
shell: bash
run: echo "ORESPAWN_TARGET_JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV"

- name: Install separate Java for Gradle
if: needs.preflight.outputs.install_gradle_java == 'true'
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
Expand All @@ -471,6 +529,27 @@ jobs:
- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6

- name: Resolve explicit Gradle Java installations
id: java-paths
shell: bash
run: |
set -euo pipefail
candidates=(
"$JAVA_HOME_25_X64"
"$JAVA_HOME_8_X64"
"$ORESPAWN_TARGET_JAVA_HOME"
"$JAVA_HOME"
)
paths=
for candidate in "${candidates[@]}"; do
test -x "$candidate/bin/java"
canonical="$(cd "$candidate" && pwd -P)"
if [[ ",$paths," != *",$canonical,"* ]]; then
paths="${paths:+$paths,}$canonical"
fi
done
echo "paths=$paths" >> "$GITHUB_OUTPUT"

- name: Download immutable release artifact
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
Expand Down Expand Up @@ -503,7 +582,10 @@ jobs:
chmod +x ./gradlew
./gradlew publishMavenJavaPublicationToReleaseRepository \
-PpreparedReleaseDir="$RUNNER_TEMP/release-input" \
--no-daemon --stacktrace
--no-daemon --stacktrace \
-Dorg.gradle.java.installations.paths="${{ steps.java-paths.outputs.paths }}" \
-Dorg.gradle.java.installations.auto-detect=false \
-Dorg.gradle.java.installations.auto-download=false

publish_curseforge:
name: Publish CurseForge
Expand Down
Loading