Skip to content

Commit 66feae2

Browse files
authored
Merge pull request #249 from ducflair/jorgedanisc
refactor: update Pyodide xbuildenv discovery and Emscripten version e…
2 parents d10a4c1 + effafd7 commit 66feae2

2 files changed

Lines changed: 27 additions & 10 deletions

File tree

.github/workflows/pr-checks.yml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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.

.github/workflows/release-ducpy.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,19 @@ jobs:
7575
run: |
7676
python -m pip install --upgrade pip
7777
pip install "pyodide-build==0.29.3" "wheel<0.44"
78-
echo "emscripten_version=$(pyodide config get emscripten_version)" >> $GITHUB_OUTPUT
78+
pyodide xbuildenv install 0.29.3
79+
XBUILD_DIR="$(pwd)/.pyodide-xbuildenv-0.29.3/0.29.3/xbuildenv"
80+
if [ ! -d "$XBUILD_DIR/pyodide-root" ]; then
81+
XBUILD_DIR="$HOME/.pyodide-xbuildenv-0.29.3/0.29.3/xbuildenv"
82+
fi
83+
EMSCRIPTEN_VERSION=$(python3 -c "
84+
import os
85+
os.environ['PYODIDE_ROOT'] = '$XBUILD_DIR/pyodide-root'
86+
from pyodide_build.build_env import get_build_environment_vars
87+
from pathlib import Path
88+
print(get_build_environment_vars(Path(os.environ['PYODIDE_ROOT']))['PYODIDE_EMSCRIPTEN_VERSION'])
89+
")
90+
echo "emscripten_version=${EMSCRIPTEN_VERSION}" >> $GITHUB_OUTPUT
7991
8092
- name: Setup Emscripten SDK
8193
if: steps.release.outputs.status == 'success'

0 commit comments

Comments
 (0)