Skip to content

Add core packages

Add core packages #88

Workflow file for this run

name: Build Recipes
on:
push:
pull_request:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install latest pyodide-build and build dependencies
run : |
pip install git+https://github.com/pyodide/pyodide.git@main#subdirectory=pyodide-build
pip install setuptools --upgrade
pyodide xbuildenv install --download --url http://pyodide-cache.s3-website-us-east-1.amazonaws.com/xbuildenv/dev/xbuildenv.tar.bz2
sudo apt update
sudo apt upgrade
sudo apt install gfortran f2c pkg-config
- name: Check emscripten version
run: |
echo EMSCRIPTEN_VERSION=$(pyodide config get emscripten_version) >> $GITHUB_ENV
- uses: mymindstorm/setup-emsdk@v11
with:
version: ${{ env.EMSCRIPTEN_VERSION }}
- name: Calculate recipes to build (pull_request)
if: github.event_name == 'pull_request'
id: calculate_recipes_pr
run: |
CHANGED_RECIPES=$(python ./tools/calc_diff.py \
--base ${{ github.base_ref }} \
--target ${{ github.head_ref }})
# If there are no changed recipes, we build only core packages sets
if [ -z "$CHANGED_RECIPES" ]; then
echo "recipes=tag:core" >> "$GITHUB_OUTPUT"
else
echo "recipes=$CHANGED_RECIPES,tag:core" >> "$GITHUB_OUTPUT"
fi
- name: Build recipes (full)
if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, '[full build]') }}
run: |
# FIXME: move to pyodide-build
export PKG_CONFIG_PATH=$(pwd)/packages/.libs/lib/pkgconfig
pyodide build-recipes "*" --install --install-dir=./repodata
- name: Build recipes (changed only)
if: github.event_name == 'pull_request' && !contains(github.event.head_commit.message, '[full build]')
run: |
# FIXME: move to pyodide-build
export PKG_CONFIG_PATH=$(pwd)/packages/.libs/lib/pkgconfig
pyodide build-recipes ${{ steps.calculate_recipes_pr.outputs.recipes }} --install --install-dir=./repodata
- name: Store artifacts build
uses: actions/upload-artifact@v2
with:
name: repodata
path: ./repodata/
retention-days: 15
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
./repodata/*.whl
test:
runs-on: ubuntu-latest
needs: [build]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
test-config: [
{runner: selenium, runtime: chrome, runtime-version: latest },
]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Download latest Pyodide
run: |
wget http://pyodide-cache.s3-website-us-east-1.amazonaws.com/xbuildenv/dev/pyodide-core.tar.bz2
tar -xvf pyodide-core.tar.bz2
mv pyodide dist
- uses: pyodide/pyodide-actions/install-browser@v1
with:
runner: ${{ matrix.test-config.runner }}
browser: ${{ matrix.test-config.runtime }}
browser-version: ${{ matrix.test-config.runtime-version }}
- name: Install requirements
shell: bash -l {0}
run: |
python3 -m pip install pytest pytest-pyodide pytest-httpserver
- name: Download build artifact
uses: actions/download-artifact@v2
with:
name: repodata
path: ./repodata/
- name: Copy repodata
run: |
cp ./repodata/* ./dist/
- name: Run tests
run: |
# FIXME: skip webworker tests
pytest -v \
--dist-dir=./dist/ \
--runner=${{ matrix.test-config.runner }} \
--rt ${{ matrix.test-config.runtime }} \
-k "not webworker" \
packages