Skip to content

build-wasm

build-wasm #125

Workflow file for this run

name: build-wasm
on: [workflow_call, workflow_dispatch]
env:
PYODIDE_VERSION: "0.28.3"
RUST_VERSION: "nightly-2025-02-01"
PYTHON_VERSION: "3.13"
jobs:
build-wasm:
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Install Nightly Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.RUST_VERSION }}
components: rust-src, rustfmt, clippy
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install Python packages
run: pip install -r python/requirements.txt
- name: Cache Emscripten
id: cache-emsdk
uses: actions/cache@v4
with:
path: pyodide/emsdk
key: emscripten-${{ runner.os }}-pyodide-${{ env.PYODIDE_VERSION }}
restore-keys: |
emscripten-${{ runner.os }}-
- name: Build Emscripten for Pyodide
if: steps.cache-emsdk.outputs.cache-hit != 'true'
shell: bash
run: |
git clone --branch ${{ env.PYODIDE_VERSION }} --depth 1 https://github.com/pyodide/pyodide.git pyodide
cd pyodide/emsdk
make emsdk
- name: Build wheel
run: |
source pyodide/emsdk/emsdk/emsdk_env.sh
make build-wasm
- name: Upload wheel
uses: actions/upload-artifact@v4
with:
name: pyxel-wasm
path: dist/*