@@ -39,33 +39,48 @@ jobs:
3939 - name : Apply Patches
4040 id : apply_patches
4141 run : |
42- set +e
4342 ./gradlew applyPatches --stacktrace 2>&1 | tee applyPatches.log
44- PATCH_EXIT=$?
45- set -e
46- echo "patch_exit_code=$PATCH_EXIT" >> $GITHUB_OUTPUT
47- if [ $PATCH_EXIT -ne 0 ]; then
43+ continue-on-error : true
44+
45+ - name : Check patch result
46+ id : check_patches
47+ run : |
48+ if grep -q "FAILED\|BUILD FAILED" applyPatches.log; then
4849 echo "PATCH_STATUS=FAILED" >> $GITHUB_ENV
49- echo "Patches failed (exit code $PATCH_EXIT)"
5050 else
5151 echo "PATCH_STATUS=SUCCESS" >> $GITHUB_ENV
52- echo "Patches applied successfully"
5352 fi
5453
55- - name : List failed patches
54+ - name : Dump failing context
5655 if : env.PATCH_STATUS == 'FAILED'
5756 run : |
58- echo "=== FAILED PATCHES ==="
59- grep -i "FAIL\|CONFLICT\|could not apply\|error: " applyPatches.log || true
57+ echo "=== MACHE PATCH FAILURES ==="
58+ grep -i "Patching:\|Hunk.*FAILURE\|Failed to apply" applyPatches.log || true
6059 echo ""
61- echo "=== CONFLICT FILES ==="
62- find . -name "*.java" -exec grep -l "<<<<<<< HEAD" {} \; 2>/dev/null || true
60+ echo "=== LOOKING FOR DECOMPILED SOURCE ==="
61+ find . -path "*/src/minecraft/java/net/minecraft/world/entity/LivingEntity.java" 2>/dev/null || true
62+ find . -path "*/src/minecraft/java/net/minecraft/world/level/biome/Climate.java" 2>/dev/null || true
6363 echo ""
64- echo "=== PATCH HUNK FAILURES ==="
65- grep -B2 "FAILED\|cannot apply\|reject" applyPatches.log | head -100 || true
64+ echo "=== DECOMPILED LivingEntity.java around lines 1170-1290 ==="
65+ LIVING=$(find . -path "*/src/minecraft/java/net/minecraft/world/entity/LivingEntity.java" 2>/dev/null | head -1)
66+ if [ -n "$LIVING" ]; then
67+ sed -n '1160,1200p' "$LIVING" 2>/dev/null || true
68+ echo "--- gap ---"
69+ sed -n '1255,1295p' "$LIVING" 2>/dev/null || true
70+ else
71+ echo "LivingEntity.java not found (mache may not have extracted it yet)"
72+ fi
6673 echo ""
67- echo "=== LAST 500 LINES ==="
68- tail -500 applyPatches.log
74+ echo "=== DECOMPILED Climate.java around lines 260-280 ==="
75+ CLIMATE=$(find . -path "*/src/minecraft/java/net/minecraft/world/level/biome/Climate.java" 2>/dev/null | head -1)
76+ if [ -n "$CLIMATE" ]; then
77+ sed -n '255,285p' "$CLIMATE" 2>/dev/null || true
78+ else
79+ echo "Climate.java not found"
80+ fi
81+ echo ""
82+ echo "=== LAST 300 LINES ==="
83+ tail -300 applyPatches.log
6984
7085 - name : Upload patch log
7186 if : always()
@@ -79,32 +94,29 @@ jobs:
7994 if : env.PATCH_STATUS == 'SUCCESS'
8095 id : compile
8196 run : |
82- set +e
8397 ./gradlew :paper-server:compileJava 2>&1 | tee compileJava.log
84- COMPILE_EXIT=$?
85- set -e
86- echo "compile_exit_code=$COMPILE_EXIT" >> $GITHUB_OUTPUT
87- if [ $COMPILE_EXIT -ne 0 ]; then
98+ continue-on-error : true
99+
100+ - name : Check compile result
101+ if : env.PATCH_STATUS == 'SUCCESS'
102+ run : |
103+ if grep -q "BUILD FAILED\|error:" compileJava.log 2>/dev/null; then
88104 echo "COMPILE_STATUS=FAILED" >> $GITHUB_ENV
105+ echo "=== COMPILE ERROR SUMMARY ==="
106+ grep "error:" compileJava.log | sort -u | head -200
107+ echo ""
108+ echo "=== UNIQUE MISSING PACKAGES ==="
109+ grep "package .* does not exist" compileJava.log | sed 's/.*package //' | sed 's/ does not exist.*//' | sort -u
110+ echo ""
111+ echo "=== UNIQUE MISSING SYMBOLS ==="
112+ grep "cannot find symbol" compileJava.log | sort -u | head -50
113+ echo ""
114+ echo "=== FULL ERROR COUNT ==="
115+ grep -c "error:" compileJava.log || echo "0"
89116 else
90117 echo "COMPILE_STATUS=SUCCESS" >> $GITHUB_ENV
91118 fi
92119
93- - name : Extract compile errors
94- if : env.COMPILE_STATUS == 'FAILED'
95- run : |
96- echo "=== COMPILE ERROR SUMMARY ==="
97- grep "error:" compileJava.log | sort -u | head -200
98- echo ""
99- echo "=== UNIQUE MISSING PACKAGES ==="
100- grep "package .* does not exist" compileJava.log | sed 's/.*package //' | sed 's/ does not exist.*//' | sort -u
101- echo ""
102- echo "=== UNIQUE MISSING SYMBOLS ==="
103- grep "cannot find symbol" compileJava.log | sort -u | head -50
104- echo ""
105- echo "=== FULL ERROR COUNT ==="
106- grep -c "error:" compileJava.log || echo "0"
107-
108120 - name : Upload compile log
109121 if : always() && env.PATCH_STATUS == 'SUCCESS'
110122 uses : actions/upload-artifact@v4
@@ -122,19 +134,22 @@ jobs:
122134 if : env.COMPILE_STATUS == 'SUCCESS'
123135 id : build_jar
124136 run : |
125- set +e
126- ./gradlew createMojmapBundlerJar 2>&1 | tee buildJar.log
127- if [ $? -ne 0 ]; then
128- echo "createMojmapBundlerJar failed, trying alternatives..."
129- ./gradlew tasks --all 2>&1 | grep -i "jar" | tee -a buildJar.log
130- fi
131- BUILD_EXIT=$?
132- set -e
133- if [ $BUILD_EXIT -eq 0 ]; then
134- echo "BUILD_STATUS=SUCCESS" >> $GITHUB_ENV
135- else
137+ # Try multiple task names - paperweight 2.0 may have changed them
138+ for task in createMojmapBundlerJar createBundlerJar paperclipJar createPaperclipJar shadowJar; do
139+ echo "Trying task: $task"
140+ if ./gradlew $task 2>&1 | tee buildJar.log; then
141+ echo "BUILD_STATUS=SUCCESS" >> $GITHUB_ENV
142+ break
143+ else
144+ echo "$task failed, trying next..."
145+ fi
146+ done
147+ if [ "${BUILD_STATUS:-FAILED}" != "SUCCESS" ]; then
136148 echo "BUILD_STATUS=FAILED" >> $GITHUB_ENV
149+ echo "=== Available jar tasks ==="
150+ ./gradlew tasks --all 2>&1 | grep -i "jar" | tee -a buildJar.log || true
137151 fi
152+ continue-on-error : true
138153
139154 - name : Upload build log
140155 if : always() && env.COMPILE_STATUS == 'SUCCESS'
0 commit comments