Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi arch test #12

Merged
merged 4 commits into from
Aug 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions .github/workflows/build-multiarch.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Build Multiarch

on:
push:
branches: [release]
pull_request:
branches: [master, release]

jobs:
multi-arch-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- arch: armv6
distro: bookworm
- arch: armv7
distro: bookworm
- arch: aarch64
distro: bookworm
- arch: s390x
distro: bookworm
- arch: ppc64le
distro: bookworm

- arch: armv7
distro: ubuntu_latest
- arch: aarch64
distro: ubuntu_latest
- arch: riscv64
distro: ubuntu_latest
- arch: s390x
distro: ubuntu_latest
- arch: ppc64le
distro: ubuntu_latest

- arch: armv7
distro: ubuntu22.04
- arch: aarch64
distro: ubuntu22.04
- arch: riscv64
distro: ubuntu22.04
- arch: s390x
distro: ubuntu22.04
- arch: ppc64le
distro: ubuntu22.04
# ubuntu20.04 is too old, fluids dropped support with numpy 2.0 compat

- arch: armv6
distro: alpine_latest
- arch: armv7
distro: alpine_latest
- arch: aarch64
distro: alpine_latest
- arch: riscv64
distro: alpine_latest
- arch: s390x
distro: alpine_latest
- arch: ppc64le
distro: alpine_latest
# fedora-latest doesn't work not sure why

steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
with:
platforms: all
- name: Run on ${{ matrix.arch }}
uses: uraimo/run-on-arch-action@v2
with:
arch: ${{ matrix.arch }}
distro: ${{ matrix.distro }}
githubToken: ${{ github.token }}
install: |
if [[ "${{ matrix.distro }}" == "alpine_latest" ]]; then
apk update
apk add python3 py3-pip py3-scipy py3-matplotlib py3-numpy py3-pandas
elif [[ "${{ matrix.distro }}" == "ubuntu_latest" || "${{ matrix.distro }}" == "ubuntu20.04" || "${{ matrix.distro }}" == "ubuntu22.04" || "${{ matrix.distro }}" == "bookworm" ]]; then
apt-get update
apt-get install -y libatlas-base-dev liblapack-dev gfortran libgmp-dev libmpfr-dev libsuitesparse-dev ccache libmpc-dev python3 python3-pip python3-scipy python3-matplotlib python3-numpy python3-pandas
fi
run: |
if python3 -c "import subprocess; exit('no such option' not in subprocess.getoutput('pip3 install --break-system-packages'))"; then
# If the exit status is 0 (True), this means the option is not supported
python3 -m pip install wheel
pip3 install -r requirements_test_multiarch.txt
else
# If the exit status is 1 (False), this means the option is supported
python3 -m pip install wheel --break-system-packages
pip3 install -r requirements_test_multiarch.txt --break-system-packages
fi
python3 -m pytest . -v -m "not online and not thermo and not numba"
3 changes: 2 additions & 1 deletion conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import sys

is_pypy = 'PyPy' in sys.version
is_x86_or_x86_64 = platform.machine().lower() in ('i386', 'i686', 'x86', 'x86_64', 'amd64')

def pytest_ignore_collect(path):
path = str(path)
Expand All @@ -11,7 +12,7 @@ def pytest_ignore_collect(path):
return True
ver_tup = platform.python_version_tuple()[0:2]
ver_tup = tuple(int(i) for i in ver_tup)
if ver_tup < (3, 7) or ver_tup >= (3, 13) or is_pypy:
if ver_tup < (3, 7) or ver_tup >= (3, 13) or is_pypy or not is_x86_or_x86_64:
# numba does not yet run under pypy
if 'numba' in path:
return True
Expand Down
10 changes: 10 additions & 0 deletions requirements_test_multiarch.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
pytest
sympy
fuzzywuzzy
pint
pytz
IPython
sphinx
wheel
mpmath
fluids>=1.0.23
Loading