1+ name : CI Build (push / PR -> build + upload artifact)
2+
3+ on :
4+ push :
5+ pull_request :
6+
7+ jobs :
8+ build :
9+ runs-on : ubuntu-latest
10+
11+ steps :
12+ - name : Checkout repository
13+ uses : actions/checkout@v4
14+ with :
15+ persist-credentials : false
16+ fetch-depth : 0
17+ fetch-tags : true
18+
19+ - name : Set up JDK 17
20+ uses : actions/setup-java@v4
21+ with :
22+ distribution : ' temurin'
23+ java-version : ' 17'
24+ cache : ' gradle'
25+
26+ - name : Make gradlew executable
27+ run : chmod +x ./gradlew
28+
29+ - name : Ensure jar in fml-loom cache
30+ run : |
31+ set -euo pipefail
32+ MITE_VER="1.6.4-MITE"
33+ GRADLE_USER_HOME="${GRADLE_USER_HOME:-$HOME/.gradle}"
34+ CACHE_DIR="$GRADLE_USER_HOME/caches/fml-loom/$MITE_VER"
35+ TARGET_JAR="$CACHE_DIR/$MITE_VER.jar"
36+
37+ mkdir -p "$CACHE_DIR"
38+
39+ if [ -f "$TARGET_JAR" ]; then
40+ echo "Found $TARGET_JAR, skipping download."
41+ exit 0
42+ fi
43+
44+ DOWNLOAD_URL="https://maven.limingzxc.top/repository/maven-releases/com/mojang/minecraft/$MITE_VER/minecraft-$MITE_VER.jar"
45+
46+ echo "Downloading $DOWNLOAD_URL ..."
47+ # download to temp file then move into place
48+ curl -fSL "$DOWNLOAD_URL" -o "$TARGET_JAR.tmp"
49+ mv "$TARGET_JAR.tmp" "$TARGET_JAR"
50+ echo "Saved $TARGET_JAR"
51+
52+ - name : Build with Gradle
53+ run : ./gradlew clean build --no-daemon
54+
55+ - name : Find built JAR
56+ id : find
57+ run : |
58+ set -e
59+ ARTIFACTS=$(ls build/libs/*.jar 2>/dev/null || true)
60+ if [ -z "$ARTIFACTS" ]; then
61+ echo "No jar found in build/libs/"
62+ exit 1
63+ fi
64+ # output all matching paths (newline-separated)
65+ echo "$ARTIFACTS" | tr ' ' '\n' > artifact_paths.txt
66+ echo "artifact_list<<EOF" >> $GITHUB_OUTPUT
67+ cat artifact_paths.txt >> $GITHUB_OUTPUT
68+ echo "EOF" >> $GITHUB_OUTPUT
69+
70+ - name : Upload Build Artifacts
71+ uses : actions/upload-artifact@v4
72+ with :
73+ name : build-artifacts-${{ github.sha }}
74+ path : build/libs/*.jar
0 commit comments