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
64 changes: 38 additions & 26 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: Electric Advantage 1.14 CI
name: Electric Advantage 1.15 CI

on:
push:
branches: [master-1.14.4, 'feature/**']
branches: [master-1.15.2, 'feature/**']
pull_request:
branches: [master-1.14.4]
branches: [master-1.15.2]

permissions:
contents: read

concurrency:
group: electricadvantage-1.14-${{ github.workflow }}-${{ github.ref }}
group: electricadvantage-1.15-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Expand All @@ -21,27 +21,32 @@ jobs:
steps:
- name: Check out ElectricAdvantage
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Use canonical LF dependency inputs
# Apply before every dependency checkout, including OreSpawn.
run: git config --global core.autocrlf false
- name: Check out pinned OreSpawn
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: 9c2488cba02d317e3f31e24441dcc58273d8d0e6
ref: 5613baf876747ed071cb7ad7e2aff4e0ce4f0a03
path: .ci-dependencies/OreSpawn
- name: Use canonical LF dependency inputs
# Use the same source bytes on hosted and local dependency builds.
run: git config --global core.autocrlf false
- name: Check out pinned Base Metals
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: 713802f93f2d1f650e1593fa35c487ea43add4a5
ref: ac1781e7cade15045ffe0135077087b4d1722603
path: .ci-dependencies/BaseMetals
- name: Check out PowerAdvantage 1.14.4
- name: Check out PowerAdvantage 1.15.2
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/PowerAdvantage
ref: 1d498ca02b6795b16435f0ece35ac04c67ef6948
ref: 6666099a734eba16561d98c86f3f4bb1b7c742f7
path: .ci-dependencies/PowerAdvantage
- 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 Java 8 toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
Expand All @@ -50,11 +55,18 @@ jobs:
- name: Install Java 17 for Gradle
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: microsoft
java-version: '17'
distribution: temurin
java-version: '17.0.1+12'
- name: Use pinned build toolchains
# These are Gradle project properties, not JVM system properties.
shell: bash
run: >-
echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64
-Porg.gradle.java.installations.auto-detect=false
-Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
- name: Build 1.14.4 dependency chain
- name: Build 1.15.2 dependency chain
id: dependencies
shell: bash
run: |
Expand All @@ -63,22 +75,22 @@ jobs:
basemetals="$GITHUB_WORKSPACE/.ci-dependencies/BaseMetals"
power="$GITHUB_WORKSPACE/.ci-dependencies/PowerAdvantage"
chmod +x "$orespawn/gradlew" "$basemetals/gradlew" "$power/gradlew"
(cd "$orespawn" && ./gradlew jar --no-daemon --stacktrace)
(cd "$basemetals" && ./gradlew jar --no-daemon --stacktrace)
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.1.114041-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.0.1.114041-deobf.jar"
(cd "$power" && ./gradlew jar verifyReleaseDependencies \
(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.1.115021-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.0.2.115021-deobf.jar"
(cd "$power" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar verifyReleaseDependencies \
-PbaseMetalsDeobfJar="$bmjar" -PoreSpawnDeobfJar="$osjar" \
--no-daemon --stacktrace)
powerjar="$power/build/libs-dev/PowerAdvantage-2.4.5.114041-deobf.jar"
powerjar="$power/build/libs-dev/PowerAdvantage-2.4.6.115021-deobf.jar"
test -f "$osjar" && test -f "$bmjar" && test -f "$powerjar"
echo "orespawn=$osjar" >> "$GITHUB_OUTPUT"
echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT"
echo "power=$powerjar" >> "$GITHUB_OUTPUT"
echo "power_ref=$(git -C "$power" rev-parse HEAD)" >> "$GITHUB_OUTPUT"
- name: Build and audit release artifacts
run: >-
./gradlew clean check build javadoc verifyReleaseDependencies verifyReleaseArtifacts
./gradlew $MMD_GRADLE_TOOLCHAINS clean check build javadoc verifyReleaseDependencies verifyReleaseArtifacts
writeReleaseChecksums verifyEclipseProductionClasspath
-PpowerAdvantageDeobfJar=${{ steps.dependencies.outputs.power }}
-Ppoweradvantage_source_ref=${{ steps.dependencies.outputs.power_ref }}
Expand All @@ -88,20 +100,20 @@ jobs:
- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: ElectricAdvantage-1.14.4-${{ github.sha }}
name: ElectricAdvantage-1.15.2-${{ github.sha }}
if-no-files-found: error
retention-days: 30
path: |
build/libs/ElectricAdvantage-2.2.6.114041.jar
build/libs/ElectricAdvantage-2.2.6.114041-sources.jar
build/libs/ElectricAdvantage-2.2.6.114041-javadoc.jar
build/libs/ElectricAdvantage-2.2.7.115021.jar
build/libs/ElectricAdvantage-2.2.7.115021-sources.jar
build/libs/ElectricAdvantage-2.2.7.115021-javadoc.jar
build/release/SHA256SUMS
CHANGELOG.txt
- name: Upload diagnostics on failure
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: ElectricAdvantage-1.14.4-diagnostics-${{ github.sha }}
name: ElectricAdvantage-1.15.2-diagnostics-${{ github.sha }}
if-no-files-found: ignore
retention-days: 14
path: |
Expand Down
50 changes: 31 additions & 19 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.14.4, 'feature/**']
branches: [master-1.15.2, 'feature/**']
pull_request:
branches: [master-1.14.4]
branches: [master-1.15.2]
schedule:
- cron: '59 7 * * 4'

Expand All @@ -21,27 +21,32 @@ jobs:
steps:
- name: Check out ElectricAdvantage
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Use canonical LF dependency inputs
# Apply before every dependency checkout, including OreSpawn.
run: git config --global core.autocrlf false
- name: Check out pinned OreSpawn
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: 9c2488cba02d317e3f31e24441dcc58273d8d0e6
ref: 5613baf876747ed071cb7ad7e2aff4e0ce4f0a03
path: .ci-dependencies/OreSpawn
- name: Use canonical LF dependency inputs
# Use the same source bytes on hosted and local dependency builds.
run: git config --global core.autocrlf false
- name: Check out pinned Base Metals
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: 713802f93f2d1f650e1593fa35c487ea43add4a5
ref: ac1781e7cade15045ffe0135077087b4d1722603
path: .ci-dependencies/BaseMetals
- name: Check out PowerAdvantage 1.14.4
- name: Check out PowerAdvantage 1.15.2
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/PowerAdvantage
ref: 1d498ca02b6795b16435f0ece35ac04c67ef6948
ref: 6666099a734eba16561d98c86f3f4bb1b7c742f7
path: .ci-dependencies/PowerAdvantage
- 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 Java 8 toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
Expand All @@ -50,11 +55,18 @@ jobs:
- name: Install Java 17 for Gradle
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: microsoft
java-version: '17'
distribution: temurin
java-version: '17.0.1+12'
- name: Use pinned build toolchains
# These are Gradle project properties, not JVM system properties.
shell: bash
run: >-
echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64
-Porg.gradle.java.installations.auto-detect=false
-Porg.gradle.java.installations.auto-download=false" >> "$GITHUB_ENV"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6
- name: Build 1.14.4 dependency chain
- name: Build 1.15.2 dependency chain
id: dependencies
shell: bash
run: |
Expand All @@ -63,14 +75,14 @@ jobs:
basemetals="$GITHUB_WORKSPACE/.ci-dependencies/BaseMetals"
power="$GITHUB_WORKSPACE/.ci-dependencies/PowerAdvantage"
chmod +x "$orespawn/gradlew" "$basemetals/gradlew" "$power/gradlew"
(cd "$orespawn" && ./gradlew jar --no-daemon --stacktrace)
(cd "$basemetals" && ./gradlew jar --no-daemon --stacktrace)
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.1.114041-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.0.1.114041-deobf.jar"
(cd "$power" && ./gradlew jar verifyReleaseDependencies \
(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.1.115021-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.0.2.115021-deobf.jar"
(cd "$power" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar verifyReleaseDependencies \
-PbaseMetalsDeobfJar="$bmjar" -PoreSpawnDeobfJar="$osjar" \
--no-daemon --stacktrace)
powerjar="$power/build/libs-dev/PowerAdvantage-2.4.5.114041-deobf.jar"
powerjar="$power/build/libs-dev/PowerAdvantage-2.4.6.115021-deobf.jar"
test -f "$osjar" && test -f "$bmjar" && test -f "$powerjar"
echo "orespawn=$osjar" >> "$GITHUB_OUTPUT"
echo "basemetals=$bmjar" >> "$GITHUB_OUTPUT"
Expand All @@ -83,7 +95,7 @@ jobs:
- name: Compile ElectricAdvantage production code
run: |
chmod +x ./gradlew
./gradlew clean classes --rerun-tasks --no-build-cache --no-daemon --stacktrace \
./gradlew $MMD_GRADLE_TOOLCHAINS clean classes --rerun-tasks --no-build-cache --no-daemon --stacktrace \
-PpowerAdvantageDeobfJar=${{ steps.dependencies.outputs.power }} \
-Ppoweradvantage_source_ref=${{ steps.dependencies.outputs.power_ref }} \
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }} \
Expand Down
4 changes: 2 additions & 2 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.14.4
- master-1.15.2
- 'feature/**'
pull_request:
branches:
- master-1.14.4
- master-1.15.2

permissions:
contents: read
Expand Down
16 changes: 16 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
Electric Advantage 2.2.7.115021

- Target Minecraft 1.15.2, Forge 31.2.57 and snapshot 20200514-1.15.1/MCP 20200515.085601.
- Retain ForgeGradle 7.0.34, Gradle 9.6.1, Renamer 1.1.5 and Java 8 production bytecode.
- Pin native Power Advantage 2.4.6.115021, Base Metals 3.0.2.115021 and OreSpawn 4.1.1.115021 source/development artifacts.
- Provision pinned Java 25 Mavenizer, Java 8 production and Java 17 Gradle toolchains in CI and CodeQL.
- Use native MatrixStack/buffered entity and tile renderers, retaining the legacy vertex streams, UVs and beam orientation/full-bright behavior.
- Move the electric track's cutout layer to client setup and use Power's native-properties constructor, retaining shared conduit inheritance, states, events and connectivity without duplicated callbacks.
- Keep the photovoltaic panel solid and explicitly mark drill/turret properties non-solid, retaining their 1.14 behavior through Power's properties-respecting GUI constructor.
- Use the native short-NBT factory and renamed skylight predicate without changing saved values or solar-output arithmetic.
- Preserve registries, migration aliases, entity/tile IDs, fluids, NBT, ore mining levels, loot, recipes and discoveries; no balance changes.
- Add focused buffered-renderer geometry, UV, normals, light, control and matrix-stack regression tests.
- Preserve solar-panel solidity, shared scaffold inheritance and the non-solid drill/turret properties with focused regression tests.
- Record accepted in-game visuals and recipe unlocks alongside the automated machine and migration checks; the shared test notes retain the remaining limits.

Electric Advantage 2.2.6.114041

- Target Minecraft 1.14.4 and Forge 28.2.26 using native platform classes and Java 8 production bytecode.
Expand Down Expand Up @@ -56,3 +71,4 @@ Electric Advantage 2.2.1.112021
- Keep Base Metals integration reflection-based while retaining its distribution dependency.
- Preserve vertical Electric Drill orientation when chunks and worlds reload.
- Preserve Electric Advantage registry, tile entity, entity, asset, configuration, and saved-world identities.
- Register recipe conditions after parallel setup to prevent intermittent missing recipes at startup.
Loading
Loading