Skip to content

Merge pull request #281 from SkyBlade1978/master-26.1.2 #225

Merge pull request #281 from SkyBlade1978/master-26.1.2

Merge pull request #281 from SkyBlade1978/master-26.1.2 #225

Workflow file for this run

name: OreSpawn 26.1.2 CI
on:
push:
branches:
- master-26.1.2
- 'feature/**'
pull_request:
branches:
- master-26.1.2
permissions:
contents: read
concurrency:
group: orespawn-26.1.2-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
cold-forge-bootstrap:
name: Cold Forge bootstrap
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Check out source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Install pinned Java 25 runtime and toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '25.0.3+9.0.LTS'
- name: Bootstrap Forge from an empty cache
shell: bash
env:
GRADLE_USER_HOME: ${{ runner.temp }}/orespawn-cold-gradle
run: |
set -euo pipefail
test ! -e .gradle
test ! -e "$GRADLE_USER_HOME"
chmod +x ./gradlew
gradle_args=(
verifyMavenizerCompatibilityFixture help
--no-daemon --no-build-cache --stacktrace --max-workers=2
"-Dorg.gradle.java.installations.paths=$JAVA_HOME"
-Dorg.gradle.java.installations.auto-detect=false
-Dorg.gradle.java.installations.auto-download=false
)
for attempt in 1 2 3; do
if (( attempt > 1 )); then
echo "Retrying the cold Forge bootstrap after transient download failure ($attempt/3)"
rm -rf -- "$GRADLE_USER_HOME/caches/minecraftforge" .gradle/mavenizer
sleep "$((attempt * 5))"
fi
mkdir -p "$GRADLE_USER_HOME"
attempt_log="$RUNNER_TEMP/cold-forge-bootstrap-attempt-$attempt.log"
if ./gradlew "${gradle_args[@]}" 2>&1 | tee "$attempt_log"; then
cp "$attempt_log" "$RUNNER_TEMP/cold-forge-bootstrap.log"
break
fi
if (( attempt == 3 )); then
echo "Cold Forge bootstrap failed after $attempt attempts" >&2
exit 1
fi
done
grep -F "OreSpawn Mavenizer compatibility runtime: Java 25.0.3" \
"$RUNNER_TEMP/cold-forge-bootstrap.log"
grep -F "OreSpawn Mavenizer compatibility: applied 0 rule(s) for net.minecraftforge:forge:26.1.2-64.0.9 (explicit no-op)" \
"$RUNNER_TEMP/cold-forge-bootstrap.log"
find "$GRADLE_USER_HOME" .gradle/mavenizer \
-name '*.orespawn-compatibility' -type f -print0 \
| sort -z | xargs -0 -r sha256sum > "$RUNNER_TEMP/markers-before.sha256"
test -s "$RUNNER_TEMP/markers-before.sha256"
- name: Verify same-cache preparation is idempotent
shell: bash
env:
GRADLE_USER_HOME: ${{ runner.temp }}/orespawn-cold-gradle
run: |
set -euo pipefail
./gradlew verifyMavenizerCompatibilityFixture help \
--no-daemon --no-build-cache --stacktrace --max-workers=2 \
-Dorg.gradle.java.installations.paths="$JAVA_HOME" \
-Dorg.gradle.java.installations.auto-detect=false \
-Dorg.gradle.java.installations.auto-download=false
find "$GRADLE_USER_HOME" .gradle/mavenizer \
-name '*.orespawn-compatibility' -type f -print0 \
| sort -z | xargs -0 -r sha256sum > "$RUNNER_TEMP/markers-after.sha256"
diff -u "$RUNNER_TEMP/markers-before.sha256" "$RUNNER_TEMP/markers-after.sha256"
build:
name: Build, test, and audit
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Check out source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Install pinned Java 25 runtime and toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '25.0.3+9.0.LTS'
- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
- name: Make the wrapper executable
run: chmod +x ./gradlew
- name: Build, test, and audit release artifacts
run: >-
./gradlew clean check build javadoc verifyReleaseArtifacts writeReleaseChecksums
verifyEclipseProductionClasspath --no-daemon --stacktrace
-Dorg.gradle.java.installations.paths="$JAVA_HOME"
-Dorg.gradle.java.installations.auto-detect=false
-Dorg.gradle.java.installations.auto-download=false
- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: OreSpawn-26.1.2-${{ github.sha }}
if-no-files-found: error
retention-days: 30
path: |
build/libs/OreSpawn-4.0.16.2601021.jar
build/libs/OreSpawn-4.0.16.2601021-sources.jar
build/libs/OreSpawn-4.0.16.2601021-javadoc.jar
build/release/SHA256SUMS
CHANGELOG.txt
- name: Upload diagnostics on failure
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: OreSpawn-26.1.2-diagnostics-${{ github.sha }}
if-no-files-found: ignore
retention-days: 14
path: |
build/test-results/**
build/reports/**
build/*-run/logs/**
build/surface-integration-run/**/*.properties
build/problems/**