@@ -182,12 +182,18 @@ jobs:
182182 curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
183183
184184 - name : Run tests (nextest)
185+ id : nextest
185186 run : |
186- cargo nextest run --profile ci --workspace --no-fail-fast --failure-output immediate-final
187+ cargo nextest run \
188+ --profile ci \
189+ --workspace \
190+ --exclude kalam-pg-extension \
191+ --no-fail-fast \
192+ --failure-output immediate-final
187193 continue-on-error : true
188194
189195 - name : Parse test results and generate badge
190- if : always()
196+ if : always() && hashFiles('target/nextest/ci/junit.xml') != ''
191197 run : |
192198 JUNIT_FILE="target/nextest/ci/junit.xml"
193199
@@ -250,7 +256,7 @@ jobs:
250256 cat > .github/badges/tests.json << EOF
251257 {
252258 "schemaVersion": 1,
253- "label": "tests",
259+ "label": "overall tests ($TOTAL) ",
254260 "message": "$MESSAGE",
255261 "color": "$COLOR"
256262 }
@@ -263,14 +269,26 @@ jobs:
263269 exit 1
264270 fi
265271
272+ - name : Fail if JUnit report is missing after a successful nextest run
273+ if : always() && steps.nextest.outcome == 'success' && hashFiles('target/nextest/ci/junit.xml') == ''
274+ run : |
275+ echo "Error: JUnit XML report not found at target/nextest/ci/junit.xml"
276+ exit 1
277+
266278 - name : Publish test report
267- if : always()
279+ if : always() && hashFiles('target/nextest/ci/junit.xml') != ''
268280 uses : dorny/test-reporter@v1
269281 with :
270282 name : nextest
271283 path : target/nextest/ci/junit.xml
272284 reporter : java-junit
273285
286+ - name : Fail workflow if nextest did not complete successfully
287+ if : always() && steps.nextest.outcome != 'success'
288+ run : |
289+ echo "nextest failed before completing the workspace suite"
290+ exit 1
291+
274292 - name : Commit badge
275293 if : github.ref == 'refs/heads/main' && github.event_name == 'push'
276294 run : |
0 commit comments