Skip to content

Commit a2306a4

Browse files
committed
ci: added 1.13 Paper smoke test
1 parent 0ca278f commit a2306a4

1 file changed

Lines changed: 33 additions & 14 deletions

File tree

.github/workflows/ci.yml

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,20 @@ jobs:
9191
- name: Run feature tests
9292
run: mvn -B -ntp -pl ezrtp-bukkit -am -Pmessage-tests -Dspotless.check.skip=true test
9393

94-
folia-smoke-test:
95-
name: Folia Smoke Test
94+
server-smoke-test:
95+
name: Server Smoke Test (${{ matrix.name }})
9696
runs-on: ubuntu-latest
9797
needs: [unit-tests, feature-tests]
98+
strategy:
99+
fail-fast: false
100+
matrix:
101+
include:
102+
- name: folia-latest
103+
project: folia
104+
version_selector: latest
105+
- name: paper-1.13
106+
project: paper
107+
version_selector: 1.13
98108
env:
99109
PAPERMC_USER_AGENT: EzRTP-CI/1.0 (https://github.com/${{ github.repository }})
100110

@@ -114,28 +124,37 @@ jobs:
114124
mvn -B -ntp -pl ezrtp-bukkit,ezrtp-paper -am -DskipTests -Dspotless.check.skip=true \
115125
package
116126
117-
- name: Resolve latest Folia build
118-
id: folia
127+
- name: Resolve server build (${{ matrix.name }})
128+
id: server
119129
run: |
120-
PROJECT_URL="https://fill.papermc.io/v3/projects/folia"
130+
PROJECT="${{ matrix.project }}"
131+
PROJECT_URL="https://fill.papermc.io/v3/projects/${PROJECT}"
132+
SELECTOR="${{ matrix.version_selector }}"
121133
MC_VERSION=$(curl -fsSL -H "User-Agent: ${PAPERMC_USER_AGENT}" "${PROJECT_URL}" | \
122-
python3 -c "import sys,json; versions=json.load(sys.stdin)['versions']; first_group=next(iter(versions)); print(versions[first_group][0])")
134+
python3 -c "import os,sys,json; data=json.load(sys.stdin)['versions']; versions=[v for group in data.values() for v in group]; uniq=sorted(set(versions), key=lambda s:[int(x) if x.isdigit() else x for x in s.replace('-', '.').split('.')]); selector=os.environ['SELECTOR'];
135+
if selector == 'latest':
136+
print(uniq[-1]);
137+
else:
138+
matches=[v for v in uniq if v == selector or v.startswith(selector + '.')];
139+
assert matches, f'No versions matching selector {selector}';
140+
print(matches[0])")
123141
BUILDS_JSON=$(curl -fsSL -H "User-Agent: ${PAPERMC_USER_AGENT}" "${PROJECT_URL}/versions/${MC_VERSION}/builds")
124142
BUILD=$(printf '%s' "$BUILDS_JSON" | \
125143
python3 -c "import sys,json; builds=json.load(sys.stdin); stable=[b for b in builds if b.get('channel') == 'STABLE']; selected=(stable[0] if stable else builds[0]); print(selected['id'])")
126144
DOWNLOAD_URL=$(printf '%s' "$BUILDS_JSON" | \
127145
python3 -c "import sys,json; builds=json.load(sys.stdin); stable=[b for b in builds if b.get('channel') == 'STABLE']; selected=(stable[0] if stable else builds[0]); print(selected['downloads']['server:default']['url'])")
146+
echo "project=${PROJECT}" >> "$GITHUB_OUTPUT"
128147
echo "mc_version=${MC_VERSION}" >> "$GITHUB_OUTPUT"
129148
echo "build=${BUILD}" >> "$GITHUB_OUTPUT"
130149
echo "download_url=${DOWNLOAD_URL}" >> "$GITHUB_OUTPUT"
131-
echo "Resolved: Folia ${MC_VERSION} build ${BUILD}"
150+
echo "Resolved: ${PROJECT} ${SELECTOR} -> ${MC_VERSION} build ${BUILD}"
132151

133-
- name: Download Folia server JAR
152+
- name: Download server JAR
134153
run: |
135154
mkdir -p smoke-server/plugins
136155
curl -fsSL -H "User-Agent: ${PAPERMC_USER_AGENT}" \
137-
"${{ steps.folia.outputs.download_url }}" \
138-
-o smoke-server/folia.jar
156+
"${{ steps.server.outputs.download_url }}" \
157+
-o smoke-server/server.jar
139158
140159
- name: Copy plugin JARs
141160
run: |
@@ -155,7 +174,7 @@ jobs:
155174
- name: Run server and wait for ready
156175
run: |
157176
cd smoke-server
158-
java -Xms512m -Xmx1g -jar folia.jar --nogui > server.log 2>&1 &
177+
java -Xms512m -Xmx1g -jar server.jar --nogui > server.log 2>&1 &
159178
SERVER_PID=$!
160179
ELAPSED=0
161180
while [ $ELAPSED -lt 120 ]; do
@@ -174,12 +193,12 @@ jobs:
174193
run: |
175194
LOG=smoke-server/server.log
176195
if grep -qiE "SEVERE.*[Ee]z[Rr][Tt][Pp]|Could not load.*[Ee]z[Rr][Tt][Pp]|Error.*[Ee]z[Rr][Tt][Pp]" "$LOG"; then
177-
echo "::error::EzRTP logged errors on Folia startup:"
196+
echo "::error::EzRTP logged errors on server startup:"
178197
grep -iE "SEVERE.*[Ee]z[Rr][Tt][Pp]|Could not load.*[Ee]z[Rr][Tt][Pp]|Error.*[Ee]z[Rr][Tt][Pp]" "$LOG"
179198
exit 1
180199
fi
181200
if grep -q "Ready\." "$LOG"; then
182-
echo "Folia smoke test passed — EzRTP reached Ready state."
201+
echo "Server smoke test passed — EzRTP reached Ready state."
183202
else
184203
echo "::warning::EzRTP 'Ready.' not found in log — server may not have finished loading within the timeout"
185204
fi
@@ -188,7 +207,7 @@ jobs:
188207
if: always()
189208
uses: actions/upload-artifact@v7
190209
with:
191-
name: folia-smoke-server-log
210+
name: smoke-server-log-${{ matrix.name }}
192211
path: smoke-server/server.log
193212
retention-days: 7
194213

0 commit comments

Comments
 (0)