Added simple Pyodide test #4014
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test build | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: [main] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [windows-latest, macos-latest, ubuntu-latest] | |
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] | |
runs-on: ${{ matrix.platform }} | |
timeout-minutes: 30 | |
# Required for miniconda to activate conda | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get conda | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
python-version: ${{ matrix.python-version }} | |
miniforge-variant: Mambaforge | |
use-mamba: true | |
- name: Install ROOT | |
if: matrix.python-version == 3.8 && runner.os != 'macOS' && runner.os != 'Windows' | |
run: | | |
conda env list | |
mamba install root | |
conda list | |
- name: Install sshd for fsspec ssh tests | |
if: runner.os != 'macOS' && runner.os != 'Windows' | |
run: | | |
sudo apt-get install -y openssh-server | |
sudo service ssh restart | |
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa | |
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys | |
chmod og-wx ~/.ssh/authorized_keys | |
ssh-keyscan -H localhost >> ~/.ssh/known_hosts | |
ssh -o StrictHostKeyChecking=no localhost echo "ssh connection successful" | |
- name: Install XRootD | |
if: runner.os != 'macOS' && runner.os != 'Windows' | |
run: | | |
conda env list | |
mamba install xrootd | |
conda list | |
- name: Pip install the package | |
run: python -m pip install .[test,dev] | |
- name: Run pytest | |
run: | | |
python -m pytest -vv tests --reruns 10 --reruns-delay 30 --only-rerun "(?i)http|ssl|timeout|expired|connection|socket" | |
vanilla-build: | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [windows-latest, ubuntu-latest, macos-latest] | |
python-version: ['3.11'] | |
runs-on: ${{ matrix.platform }} | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Pip install the package | |
run: python -m pip install .[test,dev] | |
- name: Run pytest | |
run: | | |
python -m pytest -vv tests --reruns 10 --reruns-delay 30 --only-rerun "(?i)http|ssl|timeout|expired|connection|socket" | |
numpy1-build: | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [windows-latest, ubuntu-latest, macos-latest] | |
python-version: ['3.11'] | |
runs-on: ${{ matrix.platform }} | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Pip install the package | |
run: python -m pip install 'numpy<2' .[test] | |
- name: Run pytest | |
run: | | |
python -m pytest -vv tests --reruns 10 --reruns-delay 30 --only-rerun "(?i)http|ssl|timeout|expired|connection|socket" | |
pyodide-build: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Install pyodide-build | |
run: python3 -m pip install pyodide-build==0.28.0 | |
- name: Determine EMSDK version | |
id: compute-emsdk-version | |
run: | | |
pyodide config list | |
# Save EMSDK version | |
EMSCRIPTEN_VERSION=$(pyodide config get emscripten_version) | |
echo "emsdk-version=$EMSCRIPTEN_VERSION" >> $GITHUB_OUTPUT | |
- name: Install EMSDK | |
uses: mymindstorm/setup-emsdk@v14 | |
with: | |
version: ${{ steps.compute-emsdk-version.outputs.emsdk-version }} | |
- name: Build the package | |
run: pyodide build | |
- name: Build an awkward wheel compatible with the awkward-cpp version in pyodide | |
run: | | |
git clone --depth 1 --branch v2.6.4 https://github.com/scikit-hep/awkward.git dependencies/awkward | |
pyodide build dependencies/awkward | |
rm -rf dependencies/ | |
- name: Run pytest | |
uses: pyodide/pytest-pyodide/.github/workflows/main.yaml@main | |
with: | |
build-artifact-name: none | |
build-artifact-path: dist | |
pyodide-version: 0.26.2 | |
pytest-extra-args: -vv tests-wasm |