Skip to content
Merged
Show file tree
Hide file tree
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
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
*.ogg binary
*.jar binary
*.zip binary
ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-compat.patch whitespace=-blank-at-eol,-blank-at-eof
67 changes: 42 additions & 25 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: baseSteam 1.18 CI
name: baseSteam 1.19 CI

on:
push:
branches: [master-1.18.2, feature/basesteam-1.18.2-port]
branches: [master-1.19.4, feature/basesteam-1.19.4-port]
pull_request:
branches: [master-1.18.2]
branches: [master-1.19.4]

permissions:
contents: read

concurrency:
group: basesteam-1.18-${{ github.workflow }}-${{ github.ref }}
group: basesteam-1.19-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Expand All @@ -28,19 +28,19 @@ jobs:
power_ref=$(sed -n 's/^poweradvantage_source_ref=//p' gradle.properties | tr -d '\r')
power_hash=$(sed -n 's/^poweradvantage_deobf_sha256=//p' gradle.properties | tr -d '\r')
if [[ ! "$power_ref" =~ ^[a-f0-9]{40}$ || ! "$power_hash" =~ ^[A-F0-9]{64}$ ]]; then
echo "::error::The exact basePower 1.18 dependency pin is pending."
echo "::error::The exact basePower 1.19 dependency pin is pending."
exit 1
fi
bm_ref=$(sed -n 's/^basemetals_source_commit=//p' gradle.properties | tr -d '\r')
bm_hash=$(sed -n 's/^basemetals_deobf_sha256=//p' gradle.properties | tr -d '\r')
if [[ ! "$bm_ref" =~ ^[a-f0-9]{40}$ || ! "$bm_hash" =~ ^[A-F0-9]{64}$ ]]; then
echo "::error::The exact Base Metals 1.18 dependency pin is pending."
echo "::error::The exact Base Metals 1.19 dependency pin is pending."
exit 1
fi
os_ref=$(sed -n 's/^orespawn_source_commit=//p' gradle.properties | tr -d '\r')
os_hash=$(sed -n 's/^orespawn_deobf_sha256=//p' gradle.properties | tr -d '\r')
if [[ ! "$os_ref" =~ ^[a-f0-9]{40}$ || ! "$os_hash" =~ ^[A-F0-9]{64}$ ]]; then
echo "::error::The exact OreSpawn 1.18 dependency pin is pending."
echo "::error::The exact OreSpawn 1.19 dependency pin is pending."
exit 1
fi
echo "ORESPAWN_SOURCE_REF=$os_ref" >> "$GITHUB_ENV"
Expand All @@ -61,7 +61,7 @@ jobs:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: ${{ env.BASEMETALS_SOURCE_REF }}
path: .ci-dependencies/BaseMetals
- name: Check out basePower 1.18.2
- name: Check out basePower 1.19.4
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/basePower
Expand Down Expand Up @@ -91,7 +91,7 @@ jobs:
-Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
- name: Build 1.18.2 dependency chain
- name: Build 1.19.4 dependency chain
id: dependencies
shell: bash
run: |
Expand All @@ -102,32 +102,49 @@ jobs:
test "$(git -C "$orespawn" rev-parse HEAD)" = "$ORESPAWN_SOURCE_REF"
test "$(git -C "$power" rev-parse HEAD)" = "$POWERADVANTAGE_SOURCE_REF"
test "$(git -C "$basemetals" rev-parse HEAD)" = "$BASEMETALS_SOURCE_REF"
mavenizer="$orespawn/ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-compat.jar"
printf '%s %s\n' '341B3FB10ABA6EA7DC612FBE519DC290A1C81867AED5DD320ACD783688AC49DE' "$mavenizer" | sha256sum -c -
chmod +x "$orespawn/gradlew" "$basemetals/gradlew" "$power/gradlew"
(cd "$orespawn" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar --no-daemon --stacktrace)
(cd "$basemetals" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar --no-daemon --stacktrace)
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.0.118021-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.1.2.118021-deobf.jar"
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.0.119041-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.1.2.119041-deobf.jar"
(cd "$power" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar unitBootstrapJar verifyReleaseDependencies \
"-Pforge45MavenizerJar=$mavenizer" \
-PbaseMetalsDeobfJar="$bmjar" -PoreSpawnDeobfJar="$osjar" \
--no-daemon --stacktrace)
powerjar="$power/build/libs-dev/basePower-2.4.10.118021-deobf.jar"
powerjar="$power/build/libs-dev/basePower-2.4.11.119041-deobf.jar"
bootstrap="$power/build/unit-bootstrap/forge-native-unit-bootstrap.jar"
test -f "$osjar" && test -f "$bmjar" && test -f "$powerjar" && test -f "$bootstrap"
version="$(sed -n 's/^poweradvantage_version=//p' gradle.properties | tr -d '\r')"
[[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.118021$ ]]
release="$RUNNER_TEMP/basePower-$version.jar"
curl --fail --silent --show-error --location --retry 3 --output "$release" \
"https://maven.moddev.zone/releases/zone/moddev/mc/basepower/basePower/$version/basePower-$version.jar"
power_release_sha=$(sed -n 's/^poweradvantage_player_sha256=//p' gradle.properties | tr -d '\r')
printf '%s %s\n' "$power_release_sha" "$release" | sha256sum --check
echo "orespawn=$osjar" >> "$GITHUB_OUTPUT"
echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT"
echo "power=$powerjar" >> "$GITHUB_OUTPUT"
echo "bootstrap=$bootstrap" >> "$GITHUB_OUTPUT"
echo "mavenizer=$mavenizer" >> "$GITHUB_OUTPUT"
- name: Download the released player jars
id: player
shell: bash
run: |
set -euo pipefail
directory="$RUNNER_TEMP/base-steam-published"
mkdir "$directory"
fetch() {
curl --fail --silent --show-error --location --proto '=https' --proto-redir '=https' \
--output "$directory/$1.jar" "$2"
echo "$1=$directory/$1.jar" >> "$GITHUB_OUTPUT"
}
maven="https://maven.moddev.zone/releases/zone/moddev/mc"
fetch power "$maven/basepower/basePower/2.4.11.119041/basePower-2.4.11.119041.jar?ci=$GITHUB_RUN_ID"
fetch metals "$maven/basemetals/BaseMetals/3.1.2.119041/BaseMetals-3.1.2.119041.jar?ci=$GITHUB_RUN_ID"
fetch orespawn 'https://www.curseforge.com/api/v1/mods/245586/files/9171353/download'
- name: Build and audit release artifacts
run: >-
./gradlew $MMD_GRADLE_TOOLCHAINS clean check build javadoc verifyReleaseDependencies verifyReleaseArtifacts
./gradlew $MMD_GRADLE_TOOLCHAINS clean check build javadoc verifyReleaseDependencies verifyPlayerDependencies verifyReleaseArtifacts
writeReleaseChecksums verifyEclipseProductionClasspath
"-Pforge45MavenizerJar=${{ steps.dependencies.outputs.mavenizer }}"
"-PpowerAdvantagePlayerJar=${{ steps.player.outputs.power }}"
"-PbaseMetalsPlayerJar=${{ steps.player.outputs.metals }}"
"-PoreSpawnPlayerJar=${{ steps.player.outputs.orespawn }}"
-PforgeCapabilityBootstrapJar=${{ steps.dependencies.outputs.bootstrap }}
-PpowerAdvantageDeobfJar=${{ steps.dependencies.outputs.power }}
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }}
Expand All @@ -136,20 +153,20 @@ jobs:
- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: baseSteam-1.18.2-${{ github.sha }}
name: baseSteam-1.19.4-${{ github.sha }}
if-no-files-found: error
retention-days: 30
path: |
build/libs/baseSteam-2.2.11.118021.jar
build/libs/baseSteam-2.2.11.118021-sources.jar
build/libs/baseSteam-2.2.11.118021-javadoc.jar
build/libs/baseSteam-2.2.12.119041.jar
build/libs/baseSteam-2.2.12.119041-sources.jar
build/libs/baseSteam-2.2.12.119041-javadoc.jar
build/release/SHA256SUMS
CHANGELOG.txt
- name: Upload diagnostics on failure
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: baseSteam-1.18.2-diagnostics-${{ github.sha }}
name: baseSteam-1.19.4-diagnostics-${{ github.sha }}
if-no-files-found: ignore
retention-days: 14
path: |
Expand Down
25 changes: 15 additions & 10 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: CodeQL

on:
push:
branches: [master-1.18.2, feature/basesteam-1.18.2-port]
branches: [master-1.19.4, feature/basesteam-1.19.4-port]
pull_request:
branches: [master-1.18.2]
branches: [master-1.19.4]
schedule:
- cron: '53 7 * * 4'

Expand All @@ -28,19 +28,19 @@ jobs:
power_ref=$(sed -n 's/^poweradvantage_source_ref=//p' gradle.properties | tr -d '\r')
power_hash=$(sed -n 's/^poweradvantage_deobf_sha256=//p' gradle.properties | tr -d '\r')
if [[ ! "$power_ref" =~ ^[a-f0-9]{40}$ || ! "$power_hash" =~ ^[A-F0-9]{64}$ ]]; then
echo "::error::The exact basePower 1.18 dependency pin is pending."
echo "::error::The exact basePower 1.19 dependency pin is pending."
exit 1
fi
bm_ref=$(sed -n 's/^basemetals_source_commit=//p' gradle.properties | tr -d '\r')
bm_hash=$(sed -n 's/^basemetals_deobf_sha256=//p' gradle.properties | tr -d '\r')
if [[ ! "$bm_ref" =~ ^[a-f0-9]{40}$ || ! "$bm_hash" =~ ^[A-F0-9]{64}$ ]]; then
echo "::error::The exact Base Metals 1.18 dependency pin is pending."
echo "::error::The exact Base Metals 1.19 dependency pin is pending."
exit 1
fi
os_ref=$(sed -n 's/^orespawn_source_commit=//p' gradle.properties | tr -d '\r')
os_hash=$(sed -n 's/^orespawn_deobf_sha256=//p' gradle.properties | tr -d '\r')
if [[ ! "$os_ref" =~ ^[a-f0-9]{40}$ || ! "$os_hash" =~ ^[A-F0-9]{64}$ ]]; then
echo "::error::The exact OreSpawn 1.18 dependency pin is pending."
echo "::error::The exact OreSpawn 1.19 dependency pin is pending."
exit 1
fi
echo "ORESPAWN_SOURCE_REF=$os_ref" >> "$GITHUB_ENV"
Expand All @@ -61,7 +61,7 @@ jobs:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: ${{ env.BASEMETALS_SOURCE_REF }}
path: .ci-dependencies/BaseMetals
- name: Check out basePower 1.18.2
- name: Check out basePower 1.19.4
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/basePower
Expand Down Expand Up @@ -91,7 +91,7 @@ jobs:
-Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
- name: Build 1.18.2 dependency chain
- name: Build 1.19.4 dependency chain
id: dependencies
shell: bash
run: |
Expand All @@ -102,21 +102,25 @@ jobs:
test "$(git -C "$orespawn" rev-parse HEAD)" = "$ORESPAWN_SOURCE_REF"
test "$(git -C "$power" rev-parse HEAD)" = "$POWERADVANTAGE_SOURCE_REF"
test "$(git -C "$basemetals" rev-parse HEAD)" = "$BASEMETALS_SOURCE_REF"
mavenizer="$orespawn/ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-compat.jar"
printf '%s %s\n' '341B3FB10ABA6EA7DC612FBE519DC290A1C81867AED5DD320ACD783688AC49DE' "$mavenizer" | sha256sum -c -
chmod +x "$orespawn/gradlew" "$basemetals/gradlew" "$power/gradlew"
(cd "$orespawn" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar --no-daemon --stacktrace)
(cd "$basemetals" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar --no-daemon --stacktrace)
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.0.118021-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.1.2.118021-deobf.jar"
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.0.119041-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.1.2.119041-deobf.jar"
(cd "$power" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar unitBootstrapJar verifyReleaseDependencies \
"-Pforge45MavenizerJar=$mavenizer" \
-PbaseMetalsDeobfJar="$bmjar" -PoreSpawnDeobfJar="$osjar" \
--no-daemon --stacktrace)
powerjar="$power/build/libs-dev/basePower-2.4.10.118021-deobf.jar"
powerjar="$power/build/libs-dev/basePower-2.4.11.119041-deobf.jar"
bootstrap="$power/build/unit-bootstrap/forge-native-unit-bootstrap.jar"
test -f "$osjar" && test -f "$bmjar" && test -f "$powerjar" && test -f "$bootstrap"
echo "orespawn=$osjar" >> "$GITHUB_OUTPUT"
echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT"
echo "power=$powerjar" >> "$GITHUB_OUTPUT"
echo "bootstrap=$bootstrap" >> "$GITHUB_OUTPUT"
echo "mavenizer=$mavenizer" >> "$GITHUB_OUTPUT"
- name: Initialize CodeQL
uses: github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4
with:
Expand All @@ -125,6 +129,7 @@ jobs:
run: |
chmod +x ./gradlew
./gradlew $MMD_GRADLE_TOOLCHAINS clean classes --rerun-tasks --no-build-cache --no-daemon --stacktrace \
"-Pforge45MavenizerJar=${{ steps.dependencies.outputs.mavenizer }}" \
-PforgeCapabilityBootstrapJar=${{ steps.dependencies.outputs.bootstrap }} \
-PpowerAdvantageDeobfJar=${{ steps.dependencies.outputs.power }} \
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }} \
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/validate-gradle-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ name: Validate Gradle Wrapper
on:
push:
branches:
- master-1.18.2
- feature/basesteam-1.18.2-port
- master-1.19.4
- feature/basesteam-1.19.4-port
pull_request:
branches:
- master-1.18.2
- master-1.19.4

permissions:
contents: read
Expand Down
16 changes: 11 additions & 5 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
baseSteam 2.2.11.118021 (Minecraft 1.18.2)
baseSteam 2.2.12.119041 (Minecraft 1.19.4)

- Bring baseSteam to Minecraft 1.18.2, with the same recipes and steam machines.
- Keep saved inventories, steam, drill state and musket wear when upgrading.
- Use the released basePower 2.4.10.118021 and Base Metals 3.1.2 save hook.
- Target Minecraft 1.19.4 / Forge 45.4.0 and Java 17 with basePower 2.4.11.119041.
- Adapt native registrations, rendering, damage, sound, fuel and recipe calls.
- Retain Steam save IDs, machine data and optional Base Metals recipes.
- Build against the released basePower 2.4.11.119041 and test with the Base Metals migration fix.

baseSteam 2.2.11.118021 (local Minecraft 1.18.2 candidate)

- Target Minecraft 1.18.2 / Forge 40.3.0 and Java 17 with basePower 2.4.10.118021.
- Use native block-entity saves and update packets and native musket item tags.
- Keep Steam registry names, legacy state keys, and recipe data unchanged.

baseSteam 2.2.10.117011 (local Minecraft 1.17.1 candidate)

Expand All @@ -11,7 +18,6 @@ baseSteam 2.2.10.117011 (local Minecraft 1.17.1 candidate)
- Carry over Steam Advantage common settings without overwriting an existing baseSteam config.
- Keep Minecraft 1.17.1 machine behavior, models, GUIs, drops and recipe unlocks unchanged.
- Fix repeated Eclipse project refreshes without changing the game launch runtime.
- Build and test against the published basePower 2.4.9.117011 release.

Steam Advantage 2.2.9.117011 (local 1.17.1 port candidate)

Expand Down
Loading
Loading