Skip to content

Merge pull request #12 from CalebBell/multi_arch_test #123

Merge pull request #12 from CalebBell/multi_arch_test

Merge pull request #12 from CalebBell/multi_arch_test #123

Workflow file for this run

name: Build
on:
push:
branches: [master, release]
pull_request:
branches: [master, release]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', 'pypy3.9']
os: [windows-latest, ubuntu-latest, macos-13, macos-latest]
architecture: ['x86', 'x64']
exclude:
# Only test pypy on Linux
- os: windows-latest
python-version: pypy3.9
- os: macos-latest
python-version: pypy3.9
- os: macos-13
python-version: pypy3.9
# no python builds available on macos 32 bit, arm or x64
- os: macos-latest
architecture: x86
- os: macos-13
architecture: x86
# no python builds available on linux 32 bit
- os: ubuntu-latest
architecture: x86
# scipy dropped 32 bit windows builds
- os: windows-latest
architecture: x86
python-version: 3.8
- os: windows-latest
architecture: x86
python-version: 3.9
- os: windows-latest
architecture: x86
python-version: 3.10
- os: windows-latest
architecture: x86
python-version: 3.11
- os: windows-latest
architecture: x86
python-version: 3.12
- os: windows-latest
architecture: x86
python-version: 3.13
# These are arm - old versions of Python are not supported
- os: macos-latest
python-version: 3.7
- os: macos-latest
python-version: 3.8
- os: macos-latest
python-version: 3.9
- os: macos-latest
python-version: 3.10
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} ${{ matrix.architecture }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
- name: cache Linux
uses: actions/cache@v4
if: startsWith(runner.os, 'Linux')
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements_test.txt') }}
restore-keys: |
${{ runner.os }}-${{ runner.architecture }}-${{ runner.python-version }}pip-
- name: cache MacOS
uses: actions/cache@v4
if: startsWith(runner.os, 'macOS')
with:
path: ~/Library/Caches/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements_test.txt') }}
restore-keys: |
${{ runner.os }}-${{ runner.architecture }}-${{ runner.python-version }}pip-
- name: cache Windows
uses: actions/cache@v4
if: startsWith(runner.os, 'Windows')
with:
path: ~\AppData\Local\pip\Cache
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements_test.txt') }}
restore-keys: |
${{ runner.os }}-${{ runner.architecture }}-${{ runner.python-version }}pip-
- name: Install Ubuntu dependencies
if: startsWith(runner.os, 'Linux')
run: |
# Taken from scipy
sudo apt-get update
sudo apt-get install -y libopenblas-dev libatlas-base-dev liblapack-dev gfortran libgmp-dev libmpfr-dev libsuitesparse-dev ccache libmpc-dev
- name: Install dependencies
run: |
python -c "import platform; print(platform.platform()); print(platform.architecture())"
python -m pip install --upgrade pip
python -m pip install wheel
pip install -r requirements_test.txt
- name: Add numba
if: ${{ matrix.python-version == '3.7' || matrix.python-version == '3.8' || matrix.python-version == '3.9' || matrix.python-version == '3.10' || matrix.python-version == '3.11' || matrix.python-version == '3.12' }}
run: |
pip install numba
- name: Test with pytest
run: |
pytest . -v --cov-report html --cov=ht --cov-report term-missing -m "not online and not thermo"
- name: Coveralls
run: |
coveralls
if: ${{ matrix.python-version != 'pypy3.9'}}
env:
COVERALLS_REPO_TOKEN: ${{ secrets.coveralls }}
COVERALLS_PARALLEL: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
finish:
needs: build
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
if: ${{ matrix.python-version != 'pypy3.9'}}
run: |
curl https://coveralls.io/webhook?repo_token=${{ secrets.coveralls }} -d "payload[build_num]=${{ github.sha }}&payload[status]=done"