mirror of https://github.com/pyodide/pyodide.git
152 lines
3.6 KiB
YAML
152 lines
3.6 KiB
YAML
name: main
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
concurrency:
|
|
group: main-${{ github.head_ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-python@v3
|
|
with:
|
|
python-version: 3.10.2
|
|
- uses: pre-commit/action@v2.0.3
|
|
|
|
build-core:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
EMSDK_NUM_CORES: 3
|
|
EMCC_CORES: 3
|
|
PYODIDE_JOBS: 3
|
|
CCACHE_DIR: /tmp/ccache
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Cache ccache output
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: |
|
|
/tmp/ccache
|
|
key: ${{ hashFiles('Makefile.envs') }}-v20211025-
|
|
|
|
- uses: conda-incubator/setup-miniconda@v2
|
|
with:
|
|
activate-environment: pyodide-env
|
|
python-version: 3.10.2
|
|
channels: conda-forge
|
|
|
|
- name: Check Python versions
|
|
shell: bash -l {0}
|
|
run: |
|
|
python --version
|
|
which python
|
|
|
|
- name: Install dependencies
|
|
shell: bash -l {0}
|
|
run: |
|
|
sudo apt install -y build-essential git
|
|
conda install -y nodejs ccache f2c pkg-config swig make patch pkg-config texinfo autoconf automake libtool
|
|
pip install -r requirements.txt
|
|
|
|
- name: Build emsdk
|
|
shell: bash -l {0}
|
|
run: |
|
|
which ccache
|
|
|
|
ccache -z
|
|
make -C emsdk
|
|
ccache -s
|
|
|
|
- name: Build Cpython
|
|
shell: bash -l {0}
|
|
run: |
|
|
# This is necessary to use the ccache from emsdk
|
|
source pyodide_env.sh
|
|
|
|
which ccache
|
|
|
|
ccache -z
|
|
make -C cpython
|
|
ccache -s
|
|
|
|
- name: build Pyodide core + numpy
|
|
shell: bash -l {0}
|
|
run: |
|
|
# This is necessary to use the ccache from emsdk
|
|
source pyodide_env.sh
|
|
ccache -z
|
|
PYODIDE_PACKAGES="core,numpy" make
|
|
ccache -s
|
|
|
|
- name: check-size
|
|
run: ls -lh dist/
|
|
|
|
- name: Store artifacts build
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: core-build
|
|
path: ./dist/
|
|
retention-days: 60
|
|
|
|
test-core:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
DISPLAY: :99
|
|
|
|
needs: [build-core]
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
runner: [playwright]
|
|
browser: [firefox, chrome]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Download build artifact
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: core-build
|
|
path: ./dist/
|
|
|
|
- uses: conda-incubator/setup-miniconda@v2
|
|
with:
|
|
activate-environment: pyodide-env
|
|
python-version: 3.10.2
|
|
channels: conda-forge
|
|
|
|
- name: install test requirements
|
|
shell: bash -l {0}
|
|
run: |
|
|
pip install -r requirements.txt
|
|
pip install playwright && python -m playwright install
|
|
|
|
- name: run core tests
|
|
env:
|
|
BROWSER: ${{ matrix.browser }}
|
|
RUNNER: ${{ matrix.runner }}
|
|
shell: bash -l {0}
|
|
run: |
|
|
ls -lh
|
|
ls -lh dist/
|
|
tools/pytest_wrapper.py src packages/micropip/ -v -k "${BROWSER}" --runner "${RUNNER}"
|
|
|
|
- name: run package tests
|
|
env:
|
|
BROWSER: ${{ matrix.browser }}
|
|
RUNNER: ${{ matrix.runner }}
|
|
shell: bash -l {0}
|
|
run: |
|
|
ls -lh
|
|
ls -lh dist/
|
|
tools/pytest_wrapper.py packages/test* packages/*/test* -v -k "numpy and not joblib and ${BROWSER}" --runner "${RUNNER}"
|