Repository navigation
Release the Base Metals 1.13.2 world upgrade fix #79
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Base Metals 1.13.2 CI | |
| on: | |
| push: | |
| branches: | |
| - master-1.13.2 | |
| - 'feature/**' | |
| pull_request: | |
| branches: | |
| - master-1.13.2 | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: basemetals-1.13-${{ 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 ForgeGradle Mavenizer runtime | |
| uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 | |
| with: | |
| distribution: temurin | |
| java-version: '25.0.3+9.0.LTS' | |
| - name: Install pinned Java 8 compilation toolchain | |
| uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 | |
| with: | |
| distribution: temurin | |
| java-version: '8.0.502+7' | |
| - name: Install pinned Java 17 Gradle runtime | |
| uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 | |
| with: | |
| distribution: temurin | |
| java-version: '17.0.1+12' | |
| - name: Stage exact OreSpawn release dependency | |
| id: orespawn | |
| run: | | |
| mirror="$RUNNER_TEMP/orespawn-mirror" | |
| bash gradle/stage-orespawn-release.sh "$mirror" | |
| echo "repository=$mirror" >> "$GITHUB_OUTPUT" | |
| - name: Bootstrap Forge from an empty cache | |
| shell: bash | |
| env: | |
| GRADLE_USER_HOME: ${{ runner.temp }}/basemetals-cold-gradle | |
| run: | | |
| set -euo pipefail | |
| test ! -e .gradle | |
| test ! -e "$GRADLE_USER_HOME" | |
| mkdir -p "$GRADLE_USER_HOME" | |
| chmod +x ./gradlew | |
| gradle_args=( | |
| classes test verifyReleaseDependencies | |
| -PorespawnVerificationRepository="${{ steps.orespawn.outputs.repository }}" | |
| --no-daemon --no-build-cache --stacktrace --max-workers=2 | |
| -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" | |
| -Dorg.gradle.java.installations.auto-detect=false | |
| -Dorg.gradle.java.installations.auto-download=false | |
| ) | |
| ./gradlew "${gradle_args[@]}" | |
| - name: Verify same-cache bootstrap offline | |
| shell: bash | |
| env: | |
| GRADLE_USER_HOME: ${{ runner.temp }}/basemetals-cold-gradle | |
| run: | | |
| set -euo pipefail | |
| gradle_args=( | |
| classes test verifyReleaseDependencies | |
| -PorespawnVerificationRepository="${{ steps.orespawn.outputs.repository }}" | |
| --rerun-tasks --offline --no-daemon --no-build-cache --stacktrace --max-workers=2 | |
| -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" | |
| -Dorg.gradle.java.installations.auto-detect=false | |
| -Dorg.gradle.java.installations.auto-download=false | |
| ) | |
| ./gradlew "${gradle_args[@]}" | |
| build: | |
| name: Build, test, and audit | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 90 | |
| steps: | |
| - name: Check out source | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| - name: Install pinned Java 25 ForgeGradle Mavenizer runtime | |
| uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 | |
| with: | |
| distribution: temurin | |
| java-version: '25.0.3+9.0.LTS' | |
| - name: Install pinned Java 8 compilation toolchain | |
| uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 | |
| with: | |
| distribution: temurin | |
| java-version: '8.0.502+7' | |
| - name: Install pinned Java 17 Gradle runtime | |
| uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 | |
| with: | |
| distribution: temurin | |
| java-version: '17.0.1+12' | |
| - name: Set up Gradle | |
| uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 | |
| - name: Stage exact OreSpawn release dependency | |
| id: orespawn | |
| run: | | |
| mirror="$RUNNER_TEMP/orespawn-mirror" | |
| bash gradle/stage-orespawn-release.sh "$mirror" | |
| echo "repository=$mirror" >> "$GITHUB_OUTPUT" | |
| - name: Build, test, and audit first candidate | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| chmod +x ./gradlew | |
| gradle_args=( | |
| clean verifyGeneratedOreModels check build javadoc verifyReleaseArtifacts writeReleaseChecksums | |
| verifyEclipseProductionClasspath | |
| -PorespawnVerificationRepository="${{ steps.orespawn.outputs.repository }}" | |
| --no-daemon --stacktrace --max-workers=2 | |
| -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" | |
| -Dorg.gradle.java.installations.auto-detect=false | |
| -Dorg.gradle.java.installations.auto-download=false | |
| ) | |
| ./gradlew "${gradle_args[@]}" | |
| first="$RUNNER_TEMP/basemetals-first" | |
| mkdir -p "$first" | |
| cp build/libs/BaseMetals-3.0.2.113021.jar "$first/" | |
| cp build/libs/BaseMetals-3.0.2.113021-sources.jar "$first/" | |
| cp build/libs/BaseMetals-3.0.2.113021-javadoc.jar "$first/" | |
| cp build/release/SHA256SUMS "$first/" | |
| - name: Rebuild and prove byte-identical archives | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| gradle_args=( | |
| clean assemble verifyReleaseArtifacts writeReleaseChecksums | |
| -PorespawnVerificationRepository="${{ steps.orespawn.outputs.repository }}" | |
| --no-daemon --stacktrace --max-workers=2 | |
| -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" | |
| -Dorg.gradle.java.installations.auto-detect=false | |
| -Dorg.gradle.java.installations.auto-download=false | |
| ) | |
| ./gradlew "${gradle_args[@]}" | |
| cmp "$RUNNER_TEMP/basemetals-first/BaseMetals-3.0.2.113021.jar" build/libs/BaseMetals-3.0.2.113021.jar | |
| cmp "$RUNNER_TEMP/basemetals-first/BaseMetals-3.0.2.113021-sources.jar" build/libs/BaseMetals-3.0.2.113021-sources.jar | |
| cmp "$RUNNER_TEMP/basemetals-first/BaseMetals-3.0.2.113021-javadoc.jar" build/libs/BaseMetals-3.0.2.113021-javadoc.jar | |
| cmp "$RUNNER_TEMP/basemetals-first/SHA256SUMS" build/release/SHA256SUMS | |
| - name: Run exact-OreSpawn dedicated-server probe | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| gradle_args=( | |
| runRuntimeProbeServer | |
| -PorespawnVerificationRepository="${{ steps.orespawn.outputs.repository }}" | |
| --no-daemon --stacktrace --max-workers=2 | |
| -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" | |
| -Dorg.gradle.java.installations.auto-detect=false | |
| -Dorg.gradle.java.installations.auto-download=false | |
| ) | |
| timeout 15m ./gradlew "${gradle_args[@]}" | |
| - name: Upload audited release candidate | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: BaseMetals-1.13.2-${{ github.sha }} | |
| if-no-files-found: error | |
| retention-days: 30 | |
| path: | | |
| build/libs/BaseMetals-3.0.2.113021.jar | |
| build/libs/BaseMetals-3.0.2.113021-sources.jar | |
| build/libs/BaseMetals-3.0.2.113021-javadoc.jar | |
| build/release/SHA256SUMS | |
| CHANGELOG.txt | |
| - name: Upload bounded diagnostics on failure | |
| if: failure() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: BaseMetals-1.13.2-diagnostics-${{ github.sha }} | |
| if-no-files-found: ignore | |
| retention-days: 14 | |
| path: | | |
| build/test-results/** | |
| build/reports/** | |
| build/integration-test-run/logs/** | |
| build/integration-test-run/crash-reports/** | |
| build/problems/** |