Skip to content

test: Emscripten build and test on GitHub Actions #9

test: Emscripten build and test on GitHub Actions

test: Emscripten build and test on GitHub Actions #9

Workflow file for this run

name: Emscripten build and test
on:
workflow_dispatch:
pull_request:
push:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Install pyodide-build
run: |
pip install pyodide-build
echo EMSCRIPTEN_VERSION=$(pyodide config get emscripten_version) >> $GITHUB_ENV
- name: Setup Emscripten
uses: mymindstorm/setup-emsdk@v12
with:
version: ${{ env.EMSCRIPTEN_VERSION }}
- name: Build
run: pyodide build
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
# clone awkward and build a wheel, copy the wheel
- name: Awkward wheel
run: |
git clone https://github.com/scikit-hep/awkward.git
cd awkward
git checkout main
git submodule update --init --recursive
pipx run nox -s prepare -- --headers --signatures --tests
pyodide build
mv dist/*.whl ../dist
- name: Set up Pyodide virtual environment
run: |
pyodide venv .venv-pyodide
source .venv-pyodide/bin/activate
# python -m pip install .[test]
python -m pip install pytest
ls -l dist
python -m pip install dist/*.whl
python -c "import sys; print(sys.platform)"
- name: Test
run: |
source .venv-pyodide/bin/activate
python -m pytest -vv tests -m emscripten --reruns 3 --reruns-delay 30 --only-rerun "(?i)http|timeout|connection"