@@ -233,14 +233,23 @@ jobs:
233233 # Verify pyodide CLI works (catches import errors like the wheel.cli removal)
234234 pyodide --help > /dev/null
235235
236- # Install cross-build env and verify the wheel platform tag
236+ # Install cross-build environment
237237 pyodide xbuildenv install 0.29.3
238- PYODIDE_ROOT="$(pyodide config get pyodide_root 2>/dev/null || true)"
239- if [ -z "$PYODIDE_ROOT" ]; then
240- PYODIDE_ROOT="$HOME/.pyodide-xbuildenv-0.29.3/0.29.3/xbuildenv/pyodide-root"
238+
239+ # Derive PYODIDE_ROOT directly — the xbuildenv install prints its path,
240+ # and pyodide config requires a Makefile that only exists inside a full
241+ # Pyodide checkout, not in the standalone xbuildenv.
242+ XBUILD_DIR="$(pwd)/.pyodide-xbuildenv-0.29.3/0.29.3/xbuildenv"
243+ if [ ! -d "$XBUILD_DIR/pyodide-root" ]; then
244+ # Fall back to home-directory location (used outside CI workdirs)
245+ XBUILD_DIR="$HOME/.pyodide-xbuildenv-0.29.3/0.29.3/xbuildenv"
241246 fi
247+ export PYODIDE_ROOT="$XBUILD_DIR/pyodide-root"
248+ echo "PYODIDE_ROOT=$PYODIDE_ROOT"
249+
250+ # Check wheel platform tag — must contain pyodide_* for Pyodide 0.29.3 compat
242251 TAG=$(python3 -c "
243- import os, sys
252+ import os
244253 os.environ['PYODIDE_ROOT'] = '$PYODIDE_ROOT'
245254 from pyodide_build.build_env import pyodide_tags
246255 print(next(iter(pyodide_tags())))
@@ -254,10 +263,6 @@ jobs:
254263 exit 1
255264 fi
256265
257- # Also verify the Emscripten version matches what the runtime expects
258- EMSCRIPTEN_VERSION="$(pyodide config get emscripten_version)"
259- echo "Expected Emscripten version: $EMSCRIPTEN_VERSION"
260-
261266 # ──────────────────────────────────────────────────────────────────────
262267 # Phase 3: Summary & gate check
263268 # Acts as a single required status check for branch protection.
0 commit comments