|
1 | | -name: baseSteam 1.20 CI |
| 1 | +name: baseSteam 1.20.6 CI |
2 | 2 |
|
3 | 3 | on: |
4 | 4 | push: |
5 | | - branches: [master-1.20.1, feature/basesteam-1.20.1-port, feature/prepare-basesteam-1.20.1] |
| 5 | + branches: [master-1.20.6, 'feature/**'] |
6 | 6 | pull_request: |
7 | | - branches: [master-1.20.1] |
| 7 | + branches: [master-1.20.6] |
8 | 8 |
|
9 | 9 | permissions: |
10 | 10 | contents: read |
11 | 11 |
|
12 | 12 | concurrency: |
13 | | - group: basesteam-1.20-${{ github.workflow }}-${{ github.ref }} |
| 13 | + group: basesteam-1.20.6-${{ github.workflow }}-${{ github.ref }} |
14 | 14 | cancel-in-progress: true |
15 | 15 |
|
16 | 16 | jobs: |
17 | 17 | build: |
18 | 18 | name: Build, test, and audit |
19 | 19 | runs-on: ubuntu-latest |
20 | | - timeout-minutes: 105 |
| 20 | + timeout-minutes: 75 |
21 | 21 | steps: |
22 | 22 | - name: Check out baseSteam |
23 | 23 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 |
24 | | - - name: Verify merged dependency pins and public basePower bytes |
| 24 | + - name: Use canonical LF dependency inputs |
| 25 | + run: git config --global core.autocrlf false |
| 26 | + - name: Verify merged and public dependency pins |
25 | 27 | id: public-pins |
26 | 28 | env: |
27 | 29 | GH_TOKEN: ${{ github.token }} |
28 | 30 | run: bash .github/verify-published-pins.sh |
29 | | - - name: Validate coordinated dependency pins |
30 | | - shell: bash |
31 | | - run: | |
32 | | - set -euo pipefail |
33 | | - power_ref=$(sed -n 's/^poweradvantage_source_ref=//p' gradle.properties | tr -d '\r') |
34 | | - power_hash=$(sed -n 's/^poweradvantage_deobf_sha256=//p' gradle.properties | tr -d '\r') |
35 | | - if [[ ! "$power_ref" =~ ^[a-f0-9]{40}$ || ! "$power_hash" =~ ^[A-F0-9]{64}$ ]]; then |
36 | | - echo "::error::The exact basePower 1.20.1 dependency pin is pending." |
37 | | - exit 1 |
38 | | - fi |
39 | | - bm_ref=$(sed -n 's/^basemetals_source_commit=//p' gradle.properties | tr -d '\r') |
40 | | - bm_hash=$(sed -n 's/^basemetals_deobf_sha256=//p' gradle.properties | tr -d '\r') |
41 | | - if [[ ! "$bm_ref" =~ ^[a-f0-9]{40}$ || ! "$bm_hash" =~ ^[A-F0-9]{64}$ ]]; then |
42 | | - echo "::error::The exact Base Metals 1.20.1 dependency pin is pending." |
43 | | - exit 1 |
44 | | - fi |
45 | | - os_ref=$(sed -n 's/^orespawn_source_commit=//p' gradle.properties | tr -d '\r') |
46 | | - os_hash=$(sed -n 's/^orespawn_deobf_sha256=//p' gradle.properties | tr -d '\r') |
47 | | - if [[ ! "$os_ref" =~ ^[a-f0-9]{40}$ || ! "$os_hash" =~ ^[A-F0-9]{64}$ ]]; then |
48 | | - echo "::error::The exact OreSpawn 1.20.1 dependency pin is pending." |
49 | | - exit 1 |
50 | | - fi |
51 | | - echo "ORESPAWN_SOURCE_REF=$os_ref" >> "$GITHUB_ENV" |
52 | | - echo "POWERADVANTAGE_SOURCE_REF=$power_ref" >> "$GITHUB_ENV" |
53 | | - echo "BASEMETALS_SOURCE_REF=$bm_ref" >> "$GITHUB_ENV" |
54 | | - - name: Check out pinned OreSpawn |
| 31 | + - name: Check out pinned OreSpawn tool source |
55 | 32 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 |
56 | 33 | with: |
57 | 34 | repository: MinecraftModDevelopmentMods/OreSpawn |
58 | | - ref: ${{ env.ORESPAWN_SOURCE_REF }} |
| 35 | + ref: ${{ steps.public-pins.outputs.orespawn_ref }} |
59 | 36 | path: .ci-dependencies/OreSpawn |
60 | | - - name: Use canonical LF dependency inputs |
61 | | - # Use the same source bytes on hosted and local dependency builds. |
62 | | - run: git config --global core.autocrlf false |
63 | | - - name: Check out pinned Base Metals |
64 | | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 |
65 | | - with: |
66 | | - repository: MinecraftModDevelopmentMods/BaseMetals |
67 | | - ref: ${{ env.BASEMETALS_SOURCE_REF }} |
68 | | - path: .ci-dependencies/BaseMetals |
69 | | - - name: Check out basePower 1.20.1 |
| 37 | + - name: Check out released basePower source |
70 | 38 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 |
71 | 39 | with: |
72 | 40 | repository: MinecraftModDevelopmentMods/basePower |
73 | | - ref: ${{ env.POWERADVANTAGE_SOURCE_REF }} |
| 41 | + ref: ${{ steps.public-pins.outputs.power_ref }} |
74 | 42 | path: .ci-dependencies/basePower |
75 | | - - name: Install pinned Java 25 Mavenizer runtime |
| 43 | + - name: Install Java 25 for Mavenizer |
76 | 44 | uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 |
77 | 45 | with: |
78 | 46 | distribution: temurin |
79 | 47 | java-version: '25.0.3+9.0.LTS' |
80 | | - - name: Install Java 8 for legacy build utilities |
| 48 | + - name: Install Java 8 for the launcher helper |
81 | 49 | uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 |
82 | 50 | with: |
83 | 51 | distribution: temurin |
84 | 52 | java-version: '8.0.502+7' |
85 | | - - name: Install Java 17 for Gradle |
| 53 | + - name: Install Java 21 for Gradle and production |
86 | 54 | uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 |
87 | 55 | with: |
88 | 56 | distribution: temurin |
89 | | - java-version: '17.0.1+12' |
| 57 | + java-version: '21.0.7+6.0.LTS' |
90 | 58 | - name: Use pinned build toolchains |
91 | | - # These are Gradle project properties, not JVM system properties. |
92 | | - shell: bash |
93 | 59 | run: >- |
94 | 60 | echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64 |
95 | 61 | -Porg.gradle.java.installations.auto-detect=false |
96 | 62 | -Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV" |
97 | 63 | - name: Set up Gradle |
98 | 64 | uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 |
99 | | - - name: Build 1.20.1 dependency chain |
100 | | - id: dependencies |
| 65 | + - name: Verify the Forge 50 build inputs |
101 | 66 | shell: bash |
| 67 | + env: |
| 68 | + ORESPAWN_REF: ${{ steps.public-pins.outputs.orespawn_ref }} |
| 69 | + POWER_REF: ${{ steps.public-pins.outputs.power_ref }} |
102 | 70 | run: | |
103 | 71 | set -euo pipefail |
104 | 72 | orespawn="$GITHUB_WORKSPACE/.ci-dependencies/OreSpawn" |
105 | | - basemetals="$GITHUB_WORKSPACE/.ci-dependencies/BaseMetals" |
106 | 73 | power="$GITHUB_WORKSPACE/.ci-dependencies/basePower" |
107 | | - test "$(git -C "$orespawn" rev-parse HEAD)" = "$ORESPAWN_SOURCE_REF" |
108 | | - test "$(git -C "$power" rev-parse HEAD)" = "$POWERADVANTAGE_SOURCE_REF" |
109 | | - test "$(git -C "$basemetals" rev-parse HEAD)" = "$BASEMETALS_SOURCE_REF" |
| 74 | + test "$(git -C "$orespawn" rev-parse HEAD)" = "$ORESPAWN_REF" |
| 75 | + test "$(git -C "$power" rev-parse HEAD)" = "$POWER_REF" |
110 | 76 | mavenizer="$orespawn/ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-compat.jar" |
111 | | - printf '%s %s\n' '416DCA4797BC55826F0DDCF03FDC405F1990FC15C2133FA27A1F143BF7976177' "$mavenizer" | sha256sum -c - |
112 | | - (cd "$orespawn" && ./gradlew $MMD_GRADLE_TOOLCHAINS assemble --no-daemon --stacktrace) |
113 | | - (cd "$basemetals" && ./gradlew $MMD_GRADLE_TOOLCHAINS assemble --no-daemon --stacktrace) |
114 | | - osjar="$orespawn/build/libs-dev/OreSpawn-4.1.0.120011-deobf.jar" |
115 | | - bm_version=$(sed -n 's/^basemetals_version=//p' "$GITHUB_WORKSPACE/gradle.properties" | tr -d '\r') |
116 | | - bmjar="$basemetals/build/libs-dev/BaseMetals-$bm_version-deobf.jar" |
117 | | - (cd "$power" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar unitBootstrapJar verifyReleaseDependencies \ |
118 | | - "-Pforge47MavenizerJar=$mavenizer" \ |
119 | | - -PbaseMetalsDeobfJar="$bmjar" -PoreSpawnDeobfJar="$osjar" \ |
120 | | - --no-daemon --stacktrace) |
121 | | - powerjar="$power/build/libs-dev/basePower-2.4.12.120011-deobf.jar" |
122 | | - bootstrap="$power/build/unit-bootstrap/forge-native-unit-bootstrap.jar" |
123 | | - test -f "$osjar" && test -f "$bmjar" && test -f "$powerjar" && test -f "$bootstrap" |
124 | | - echo "orespawn=$osjar" >> "$GITHUB_OUTPUT" |
125 | | - echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT" |
126 | | - echo "orespawn_player=$orespawn/build/libs/OreSpawn-4.1.0.120011.jar" >> "$GITHUB_OUTPUT" |
127 | | - echo "basemetals_player=$basemetals/build/libs/BaseMetals-$bm_version.jar" >> "$GITHUB_OUTPUT" |
128 | | - echo "power=$powerjar" >> "$GITHUB_OUTPUT" |
129 | | - echo "bootstrap=$bootstrap" >> "$GITHUB_OUTPUT" |
130 | | - echo "mavenizer=$mavenizer" >> "$GITHUB_OUTPUT" |
131 | | - - name: Verify source layout and recipe unlocks |
| 77 | + printf '%s %s\n' '4B14145595E900F178A082F2253A756F63897E6F61C2B8B5E7C819B82CD79E8C' "$mavenizer" | sha256sum -c - |
| 78 | + echo "MAVENIZER=$mavenizer" >> "$GITHUB_ENV" |
| 79 | + - name: Build the released basePower test bootstrap |
| 80 | + shell: bash |
132 | 81 | run: | |
133 | | - node tools/verify-native-port.js |
134 | | - node tools/generate-recipe-unlocks.js --check |
| 82 | + set -euo pipefail |
| 83 | + power="$GITHUB_WORKSPACE/.ci-dependencies/basePower" |
| 84 | + (cd "$power" && bash ./gradlew $MMD_GRADLE_TOOLCHAINS unitBootstrapJar \ |
| 85 | + "-Pforge50MavenizerJar=$MAVENIZER" "-PbaseMetalsDeobfJar=$METALS_PLAYER" "-PoreSpawnDeobfJar=$ORESPAWN_PLAYER" --no-daemon) |
| 86 | + echo "POWER_BOOTSTRAP=$power/build/unit-bootstrap/forge-native-unit-bootstrap.jar" >> "$GITHUB_ENV" |
| 87 | + echo "POWER_BOOTSTRAP_SOURCE=$power/test-rig/unit-bootstrap/ForgeCapabilityBootstrap.java" >> "$GITHUB_ENV" |
| 88 | + echo "POWER_REGISTRY_SOURCE=$power/test-rig/unit-support/zone/moddev/mc/advantageworks/unit/ForgeUnitRegistries.java" >> "$GITHUB_ENV" |
135 | 89 | - name: Build and audit release artifacts |
136 | | - run: >- |
137 | | - ./gradlew $MMD_GRADLE_TOOLCHAINS clean check build javadoc verifyReleaseDependencies verifyPlayerDependencies verifyReleaseArtifacts |
138 | | - writeReleaseChecksums verifyEclipseProductionClasspath |
139 | | - "-Pforge47MavenizerJar=${{ steps.dependencies.outputs.mavenizer }}" |
140 | | - "-PpowerAdvantagePlayerJar=${{ steps.public-pins.outputs.power_player }}" |
141 | | - "-PbaseMetalsPlayerJar=${{ steps.dependencies.outputs.basemetals_player }}" |
142 | | - "-PoreSpawnPlayerJar=${{ steps.dependencies.outputs.orespawn_player }}" |
143 | | - -PforgeCapabilityBootstrapJar=${{ steps.dependencies.outputs.bootstrap }} |
144 | | - -PpowerAdvantageDeobfJar=${{ steps.dependencies.outputs.power }} |
145 | | - -PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }} |
146 | | - -PoreSpawnDeobfJar=${{ steps.dependencies.outputs.orespawn }} |
147 | | - --no-daemon --stacktrace |
| 90 | + shell: bash |
| 91 | + run: | |
| 92 | + ./gradlew $MMD_GRADLE_TOOLCHAINS clean check build javadoc verifyReleaseDependencies verifyReleaseArtifacts \ |
| 93 | + writeReleaseChecksums verifyEclipseProductionClasspath --no-build-cache --no-daemon --stacktrace \ |
| 94 | + "-Pforge50MavenizerJar=$MAVENIZER" "-PpowerAdvantageDeobfJar=$POWER_PLAYER" \ |
| 95 | + "-PbaseMetalsDeobfJar=$METALS_PLAYER" "-PoreSpawnDeobfJar=$ORESPAWN_PLAYER" \ |
| 96 | + "-PforgeCapabilityBootstrapJar=$POWER_BOOTSTRAP" "-PforgeCapabilityBootstrapSource=$POWER_BOOTSTRAP_SOURCE" \ |
| 97 | + "-PforgeUnitRegistriesSource=$POWER_REGISTRY_SOURCE" |
148 | 98 | - name: Upload audited release candidate |
149 | 99 | uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 |
150 | 100 | with: |
151 | | - name: baseSteam-1.20.1-${{ github.sha }} |
| 101 | + name: baseSteam-1.20.6-${{ github.sha }} |
152 | 102 | if-no-files-found: error |
153 | 103 | retention-days: 30 |
154 | 104 | path: | |
155 | | - build/libs/baseSteam-2.2.13.120011.jar |
156 | | - build/libs/baseSteam-2.2.13.120011-sources.jar |
157 | | - build/libs/baseSteam-2.2.13.120011-javadoc.jar |
| 105 | + build/libs/baseSteam-2.2.14.120061.jar |
| 106 | + build/libs/baseSteam-2.2.14.120061-sources.jar |
| 107 | + build/libs/baseSteam-2.2.14.120061-javadoc.jar |
158 | 108 | build/release/SHA256SUMS |
159 | 109 | CHANGELOG.txt |
160 | 110 | - name: Upload diagnostics on failure |
161 | 111 | if: failure() |
162 | 112 | uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 |
163 | 113 | with: |
164 | | - name: baseSteam-1.20.1-diagnostics-${{ github.sha }} |
| 114 | + name: baseSteam-1.20.6-diagnostics-${{ github.sha }} |
165 | 115 | if-no-files-found: ignore |
166 | 116 | retention-days: 14 |
167 | 117 | path: | |
168 | 118 | build/test-results/** |
169 | 119 | build/reports/** |
170 | | - build/*-run/logs/** |
171 | | - build/problems/** |
172 | | - .ci-dependencies/basePower/build/reports/** |
173 | | - .ci-dependencies/basePower/build/libs-dev/*.jar |
0 commit comments