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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
82 changes: 51 additions & 31 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: Steam Advantage 1.16 CI
name: baseSteam 1.17 CI

on:
push:
branches: [master-1.16.5, 'feature/**']
branches: [master-1.17.1, 'feature/**']
pull_request:
branches: [master-1.16.5]
branches: [master-1.17.1]

permissions:
contents: read

concurrency:
group: steamadvantage-1.16-${{ github.workflow }}-${{ github.ref }}
group: basesteam-1.17-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Expand All @@ -19,24 +19,31 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 105
steps:
- name: Check out SteamAdvantage
- name: Check out baseSteam
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Validate final Power source pin
- name: Validate coordinated dependency pins
shell: bash
run: |
set -euo pipefail
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::Final Power 1.16 dependency pin is pending."
echo "::error::The exact basePower 1.17 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.17 dependency pin is pending."
exit 1
fi
echo "POWERADVANTAGE_SOURCE_REF=$power_ref" >> "$GITHUB_ENV"
echo "BASEMETALS_SOURCE_REF=$bm_ref" >> "$GITHUB_ENV"
- name: Check out pinned OreSpawn
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: a113e5d767169189f0e35ade1e173a12d550b00e
ref: b56e2b62a1a6ea4d1dd96f8646a87801a817dbdf
path: .ci-dependencies/OreSpawn
- name: Use canonical LF dependency inputs
# Use the same source bytes on hosted and local dependency builds.
Expand All @@ -45,24 +52,29 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: 995f6cc4dd2d5eecc628a42e5c43fa5390c24bca
ref: ${{ env.BASEMETALS_SOURCE_REF }}
path: .ci-dependencies/BaseMetals
- name: Check out PowerAdvantage 1.16.5
- name: Check out basePower 1.17.1
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/PowerAdvantage
ref: bcb75bfa91c14751ebf1e31865e1ec0ffa82c0b7
path: .ci-dependencies/PowerAdvantage
repository: MinecraftModDevelopmentMods/basePower
ref: ${{ env.POWERADVANTAGE_SOURCE_REF }}
path: .ci-dependencies/basePower
- 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
- name: Install Java 8 for legacy build utilities
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '8.0.502+7'
- name: Install pinned Java 16 production toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '16.0.2+7'
- name: Install Java 17 for Gradle
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
Expand All @@ -72,65 +84,73 @@ jobs:
# 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
echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME,$JAVA_HOME_16_X64,$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.16.5 dependency chain
- name: Build 1.17.1 dependency chain
id: dependencies
shell: bash
run: |
set -euo pipefail
orespawn="$GITHUB_WORKSPACE/.ci-dependencies/OreSpawn"
basemetals="$GITHUB_WORKSPACE/.ci-dependencies/BaseMetals"
power="$GITHUB_WORKSPACE/.ci-dependencies/PowerAdvantage"
power="$GITHUB_WORKSPACE/.ci-dependencies/basePower"
test "$(git -C "$power" rev-parse HEAD)" = "$POWERADVANTAGE_SOURCE_REF"
test "$(git -C "$basemetals" rev-parse HEAD)" = "$BASEMETALS_SOURCE_REF"
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.116051-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.1.1.116051-deobf.jar"
(cd "$power" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar verifyReleaseDependencies \
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.0.117011-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.1.1.117011-deobf.jar"
(cd "$power" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar unitBootstrapJar verifyReleaseDependencies \
-PbaseMetalsDeobfJar="$bmjar" -PoreSpawnDeobfJar="$osjar" \
--no-daemon --stacktrace)
powerjar="$power/build/libs-dev/PowerAdvantage-2.4.7.116051-deobf.jar"
test -f "$osjar" && test -f "$bmjar" && test -f "$powerjar"
powerjar="$power/build/libs-dev/basePower-2.4.9.117011-deobf.jar"
bootstrap="$power/build/unit-bootstrap/forge-native-unit-bootstrap.jar"
test -f "$osjar" && test -f "$bmjar" && test -f "$powerjar" && test -f "$bootstrap"
release="$RUNNER_TEMP/basePower-2.4.9.117011.jar"
curl --fail --silent --show-error --location --retry 3 --output "$release" \
'https://maven.moddev.zone/releases/zone/moddev/mc/basepower/basePower/2.4.9.117011/basePower-2.4.9.117011.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 "power_ref=$(git -C "$power" rev-parse HEAD)" >> "$GITHUB_OUTPUT"
echo "bootstrap=$bootstrap" >> "$GITHUB_OUTPUT"
- name: Build and audit release artifacts
run: >-
./gradlew $MMD_GRADLE_TOOLCHAINS clean check build javadoc verifyReleaseDependencies verifyReleaseArtifacts
writeReleaseChecksums verifyEclipseProductionClasspath
-PforgeCapabilityBootstrapJar=${{ steps.dependencies.outputs.bootstrap }}
-PpowerAdvantageDeobfJar=${{ steps.dependencies.outputs.power }}
-Ppoweradvantage_source_ref=${{ steps.dependencies.outputs.power_ref }}
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }}
-PoreSpawnDeobfJar=${{ steps.dependencies.outputs.orespawn }}
--no-daemon --stacktrace
- name: Upload audited release candidate
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: SteamAdvantage-1.16.5-${{ github.sha }}
name: baseSteam-1.17.1-${{ github.sha }}
if-no-files-found: error
retention-days: 30
path: |
build/libs/SteamAdvantage-2.2.8.116051.jar
build/libs/SteamAdvantage-2.2.8.116051-sources.jar
build/libs/SteamAdvantage-2.2.8.116051-javadoc.jar
build/libs/baseSteam-2.2.10.117011.jar
build/libs/baseSteam-2.2.10.117011-sources.jar
build/libs/baseSteam-2.2.10.117011-javadoc.jar
build/release/SHA256SUMS
CHANGELOG.txt
- name: Upload diagnostics on failure
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: SteamAdvantage-1.16.5-diagnostics-${{ github.sha }}
name: baseSteam-1.17.1-diagnostics-${{ github.sha }}
if-no-files-found: ignore
retention-days: 14
path: |
build/test-results/**
build/reports/**
build/*-run/logs/**
build/problems/**
.ci-dependencies/PowerAdvantage/build/reports/**
.ci-dependencies/PowerAdvantage/build/libs-dev/*.jar
.ci-dependencies/basePower/build/reports/**
.ci-dependencies/basePower/build/libs-dev/*.jar
61 changes: 38 additions & 23 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.16.5, 'feature/**']
branches: [master-1.17.1, 'feature/**']
pull_request:
branches: [master-1.16.5]
branches: [master-1.17.1]
schedule:
- cron: '53 7 * * 4'

Expand All @@ -19,24 +19,31 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- name: Check out SteamAdvantage
- name: Check out baseSteam
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Validate final Power source pin
- name: Validate coordinated dependency pins
shell: bash
run: |
set -euo pipefail
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::Final Power 1.16 dependency pin is pending."
echo "::error::The exact basePower 1.17 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.17 dependency pin is pending."
exit 1
fi
echo "POWERADVANTAGE_SOURCE_REF=$power_ref" >> "$GITHUB_ENV"
echo "BASEMETALS_SOURCE_REF=$bm_ref" >> "$GITHUB_ENV"
- name: Check out pinned OreSpawn
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/OreSpawn
ref: a113e5d767169189f0e35ade1e173a12d550b00e
ref: b56e2b62a1a6ea4d1dd96f8646a87801a817dbdf
path: .ci-dependencies/OreSpawn
- name: Use canonical LF dependency inputs
# Use the same source bytes on hosted and local dependency builds.
Expand All @@ -45,24 +52,29 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/BaseMetals
ref: 995f6cc4dd2d5eecc628a42e5c43fa5390c24bca
ref: ${{ env.BASEMETALS_SOURCE_REF }}
path: .ci-dependencies/BaseMetals
- name: Check out PowerAdvantage 1.16.5
- name: Check out basePower 1.17.1
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
repository: MinecraftModDevelopmentMods/PowerAdvantage
ref: bcb75bfa91c14751ebf1e31865e1ec0ffa82c0b7
path: .ci-dependencies/PowerAdvantage
repository: MinecraftModDevelopmentMods/basePower
ref: ${{ env.POWERADVANTAGE_SOURCE_REF }}
path: .ci-dependencies/basePower
- 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
- name: Install Java 8 for legacy build utilities
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '8.0.502+7'
- name: Install pinned Java 16 production toolchain
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '16.0.2+7'
- name: Install Java 17 for Gradle
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
Expand All @@ -72,43 +84,46 @@ jobs:
# 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
echo "MMD_GRADLE_TOOLCHAINS=-Porg.gradle.java.installations.paths=$JAVA_HOME,$JAVA_HOME_16_X64,$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.16.5 dependency chain
- name: Build 1.17.1 dependency chain
id: dependencies
shell: bash
run: |
set -euo pipefail
orespawn="$GITHUB_WORKSPACE/.ci-dependencies/OreSpawn"
basemetals="$GITHUB_WORKSPACE/.ci-dependencies/BaseMetals"
power="$GITHUB_WORKSPACE/.ci-dependencies/PowerAdvantage"
power="$GITHUB_WORKSPACE/.ci-dependencies/basePower"
test "$(git -C "$power" rev-parse HEAD)" = "$POWERADVANTAGE_SOURCE_REF"
test "$(git -C "$basemetals" rev-parse HEAD)" = "$BASEMETALS_SOURCE_REF"
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.116051-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.1.1.116051-deobf.jar"
(cd "$power" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar verifyReleaseDependencies \
osjar="$orespawn/build/libs-dev/OreSpawn-4.1.0.117011-deobf.jar"
bmjar="$basemetals/build/libs-dev/BaseMetals-3.1.1.117011-deobf.jar"
(cd "$power" && ./gradlew $MMD_GRADLE_TOOLCHAINS jar unitBootstrapJar verifyReleaseDependencies \
-PbaseMetalsDeobfJar="$bmjar" -PoreSpawnDeobfJar="$osjar" \
--no-daemon --stacktrace)
powerjar="$power/build/libs-dev/PowerAdvantage-2.4.7.116051-deobf.jar"
test -f "$osjar" && test -f "$bmjar" && test -f "$powerjar"
powerjar="$power/build/libs-dev/basePower-2.4.9.117011-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 "power_ref=$(git -C "$power" rev-parse HEAD)" >> "$GITHUB_OUTPUT"
echo "bootstrap=$bootstrap" >> "$GITHUB_OUTPUT"
- name: Initialize CodeQL
uses: github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4
with:
languages: java-kotlin
- name: Compile SteamAdvantage production code
- name: Compile baseSteam production code
run: |
chmod +x ./gradlew
./gradlew $MMD_GRADLE_TOOLCHAINS clean classes --rerun-tasks --no-build-cache --no-daemon --stacktrace \
-PforgeCapabilityBootstrapJar=${{ steps.dependencies.outputs.bootstrap }} \
-PpowerAdvantageDeobfJar=${{ steps.dependencies.outputs.power }} \
-Ppoweradvantage_source_ref=${{ steps.dependencies.outputs.power_ref }} \
-PbaseMetalsDeobfJar=${{ steps.dependencies.outputs.basemetals }} \
-PoreSpawnDeobfJar=${{ steps.dependencies.outputs.orespawn }}
- name: Analyze
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release-on-tag.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Validate Steam Advantage release tag
name: Validate baseSteam release tag

on:
push:
Expand All @@ -10,13 +10,13 @@ permissions:
contents: read

concurrency:
group: steamadvantage-release-tag-${{ github.ref_name }}
group: basesteam-release-tag-${{ github.ref_name }}
cancel-in-progress: false

jobs:
validate-release-tag:
name: Validate tag for manual release confirmation
if: github.repository == 'MinecraftModDevelopmentMods/SteamAdvantage'
if: github.repository == 'MinecraftModDevelopmentMods/baseSteam'
runs-on: ubuntu-latest
timeout-minutes: 10

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.16.5
- master-1.17.1
- 'feature/**'
pull_request:
branches:
- master-1.16.5
- master-1.17.1

permissions:
contents: read
Expand Down
Loading
Loading