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
54 changes: 39 additions & 15 deletions .github/workflows/Build-1.20.1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ name: Build-1.20.1
on:
push:
paths:
- 'mod.zip'
- '*.zip'
- 'input/*.zip'
workflow_dispatch:

jobs:
Expand All @@ -14,21 +15,37 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Unzip mod.zip
- name: Find zip and extract
run: |
mkdir -p mod_extracted
unzip mod.zip -d mod_extracted
set -euo pipefail
shopt -s nullglob
zips=( input/*.zip *.zip )
if [[ ${#zips[@]} -eq 0 ]]; then
echo "ERROR: No .zip file found in input/ or repo root." >&2
exit 1
fi
ZIP="${zips[0]}"
echo "Using zip: $ZIP"
mkdir -p work
unzip "$ZIP" -d work

- name: Flatten mod/ subfolder if present
- name: Detect Gradle project root
run: |
if [ -d "mod_extracted/mod" ]; then
echo "Found mod/ subfolder – moving its contents up"
shopt -s dotglob
mv mod_extracted/mod/* mod_extracted/
rmdir mod_extracted/mod
else
echo "No mod/ subfolder found – keeping files as-is"
set -euo pipefail
PROJECT_ROOT=""
for gradle_file in settings.gradle settings.gradle.kts build.gradle build.gradle.kts; do
found=$(find work -maxdepth 4 -name "$gradle_file" | sort | head -1)
if [[ -n "$found" ]]; then
PROJECT_ROOT=$(dirname "$found")
echo "Detected project root via $gradle_file: $PROJECT_ROOT"
break
fi
done
if [[ -z "$PROJECT_ROOT" ]]; then
echo "ERROR: No Gradle project root found after extraction." >&2
exit 1
fi
echo "PROJECT_ROOT=$PROJECT_ROOT" >> "$GITHUB_ENV"

- name: Set up Java 17
uses: actions/setup-java@v4
Expand All @@ -42,11 +59,18 @@ jobs:
gradle-version: '8.8'

- name: Build mod with Gradle
working-directory: mod_extracted
run: gradle build
run: |
set -euo pipefail
if ! command -v gradle &>/dev/null; then
echo "ERROR: gradle command not available." >&2
exit 1
fi
gradle --version
cd "$PROJECT_ROOT"
gradle build --no-daemon

- name: Upload built mod artifact
uses: actions/upload-artifact@v4
with:
name: mod-build
path: mod_extracted/build/libs/*.jar
path: ${{ env.PROJECT_ROOT }}/build/libs/*.jar
54 changes: 39 additions & 15 deletions .github/workflows/Build-1.21.11.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ name: Build-1.21.11
on:
push:
paths:
- 'mod.zip'
- '*.zip'
- 'input/*.zip'
workflow_dispatch:

jobs:
Expand All @@ -14,21 +15,37 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Unzip mod.zip
- name: Find zip and extract
run: |
mkdir -p mod_extracted
unzip mod.zip -d mod_extracted
set -euo pipefail
shopt -s nullglob
zips=( input/*.zip *.zip )
if [[ ${#zips[@]} -eq 0 ]]; then
echo "ERROR: No .zip file found in input/ or repo root." >&2
exit 1
fi
ZIP="${zips[0]}"
echo "Using zip: $ZIP"
mkdir -p work
unzip "$ZIP" -d work

- name: Flatten mod/ subfolder if present
- name: Detect Gradle project root
run: |
if [ -d "mod_extracted/mod" ]; then
echo "Found mod/ subfolder – moving its contents up"
shopt -s dotglob
mv mod_extracted/mod/* mod_extracted/
rmdir mod_extracted/mod
else
echo "No mod/ subfolder found – keeping files as-is"
set -euo pipefail
PROJECT_ROOT=""
for gradle_file in settings.gradle settings.gradle.kts build.gradle build.gradle.kts; do
found=$(find work -maxdepth 4 -name "$gradle_file" | sort | head -1)
if [[ -n "$found" ]]; then
PROJECT_ROOT=$(dirname "$found")
echo "Detected project root via $gradle_file: $PROJECT_ROOT"
break
fi
done
if [[ -z "$PROJECT_ROOT" ]]; then
echo "ERROR: No Gradle project root found after extraction." >&2
exit 1
fi
echo "PROJECT_ROOT=$PROJECT_ROOT" >> "$GITHUB_ENV"

- name: Set up Java 21
uses: actions/setup-java@v4
Expand All @@ -42,11 +59,18 @@ jobs:
gradle-version: '9.2.0'

- name: Build mod with Gradle
working-directory: mod_extracted
run: gradle build
run: |
set -euo pipefail
if ! command -v gradle &>/dev/null; then
echo "ERROR: gradle command not available." >&2
exit 1
fi
gradle --version
cd "$PROJECT_ROOT"
gradle build --no-daemon

- name: Upload built mod artifact
uses: actions/upload-artifact@v4
with:
name: mod-build
path: mod_extracted/build/libs/*.jar
path: ${{ env.PROJECT_ROOT }}/build/libs/*.jar
54 changes: 39 additions & 15 deletions .github/workflows/Build-26.1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ name: Build-26.1
on:
push:
paths:
- 'mod.zip'
- '*.zip'
- 'input/*.zip'
workflow_dispatch:

jobs:
Expand All @@ -14,21 +15,37 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Unzip mod.zip
- name: Find zip and extract
run: |
mkdir -p mod_extracted
unzip mod.zip -d mod_extracted
set -euo pipefail
shopt -s nullglob
zips=( input/*.zip *.zip )
if [[ ${#zips[@]} -eq 0 ]]; then
echo "ERROR: No .zip file found in input/ or repo root." >&2
exit 1
fi
ZIP="${zips[0]}"
echo "Using zip: $ZIP"
mkdir -p work
unzip "$ZIP" -d work

- name: Flatten mod/ subfolder if present
- name: Detect Gradle project root
run: |
if [ -d "mod_extracted/mod" ]; then
echo "Found mod/ subfolder – moving its contents up"
shopt -s dotglob
mv mod_extracted/mod/* mod_extracted/
rmdir mod_extracted/mod
else
echo "No mod/ subfolder found – keeping files as-is"
set -euo pipefail
PROJECT_ROOT=""
for gradle_file in settings.gradle settings.gradle.kts build.gradle build.gradle.kts; do
found=$(find work -maxdepth 4 -name "$gradle_file" | sort | head -1)
if [[ -n "$found" ]]; then
PROJECT_ROOT=$(dirname "$found")
echo "Detected project root via $gradle_file: $PROJECT_ROOT"
break
fi
done
if [[ -z "$PROJECT_ROOT" ]]; then
echo "ERROR: No Gradle project root found after extraction." >&2
exit 1
fi
echo "PROJECT_ROOT=$PROJECT_ROOT" >> "$GITHUB_ENV"

- name: Set up Java 25
uses: actions/setup-java@v4
Expand All @@ -42,11 +59,18 @@ jobs:
gradle-version: '9.4.1'

- name: Build mod with Gradle
working-directory: mod_extracted
run: gradle build
run: |
set -euo pipefail
if ! command -v gradle &>/dev/null; then
echo "ERROR: gradle command not available." >&2
exit 1
fi
gradle --version
cd "$PROJECT_ROOT"
gradle build --no-daemon

- name: Upload built mod artifact
uses: actions/upload-artifact@v4
with:
name: mod-build
path: mod_extracted/build/libs/*.jar
path: ${{ env.PROJECT_ROOT }}/build/libs/*.jar
Loading