arm64 and cp312 testing #349
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: build-macos | |
on: | |
push: | |
branches: | |
- main | |
release: | |
types: | |
- published | |
jobs: | |
build: | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.9', '3.10', '3.11', '3.12'] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install prerequisites | |
run: | | |
brew install suite-sparse | |
# brew install libomp | |
# Starting from libomp>=15.0, the libomp installation in homebrew is "keg-only", | |
# meaning that libomp is only installed in homebrew's directory, but not moved | |
# to /usr/local to avoid other OpenMP installations (such as with gcc's version | |
# of OpenMP). To use the homebrew's version of OpenMP,the following symbolic | |
# links are created. Without these, the installation will fail with the error | |
# of "fatal error: omp.h file found" | |
ln -s /usr/local/opt/libomp/include/omp-tools.h /usr/local/include/omp-tools.h | |
ln -s /usr/local/opt/libomp/include/omp.h /usr/local/include/omp.h | |
ln -s /usr/local/opt/libomp/include/ompt.h /usr/local/include/ompt.h | |
ln -s /usr/local/opt/libomp/lib/libomp.a /usr/local/lib/libomp.a | |
ln -s /usr/local/opt/libomp/lib/libomp.dylib /usr/local/lib/libomp.dylib | |
# This is needed to import numpy in pypy3 (but not needed for | |
# pypy2 and CPython) | |
# brew install openblas | |
# OPENBLAS="$(brew --prefix openblas)" | |
# brew install lapack | |
# pip3 install numpy | |
# - name: Install CUDA | |
# uses: Jimver/[email protected] | |
# id: cuda-toolkit | |
# with: | |
# cuda: '12.1.0' | |
- name: Install package and dependencies | |
if: (matrix.python-version != '3.10') && (matrix.python-version != '3.11') && (matrix.python-version != '3.12') | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade numpy | |
python -m pip install --upgrade .[extra] | |
env: | |
USE_LONG_INT: 0 | |
USE_UNSIGNED_LONG_INT: 0 | |
USE_CBLAS: 0 | |
USE_CUDA: 0 | |
# For python 3.10, 3.11 do not install extras (sparsesuite) | |
- name: Install package and dependencies | |
if: (matrix.python-version == '3.10') || (matrix.python-version == '3.11') || (matrix.python-version == '3.12') | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade numpy | |
python -m pip install --upgrade . | |
env: | |
USE_LONG_INT: 0 | |
USE_UNSIGNED_LONG_INT: 0 | |
USE_CBLAS: 0 | |
USE_CUDA: 0 | |
- name: Test | |
run: | | |
python -m pip install --upgrade pytest | |
python -m pip install --upgrade pytest-cov | |
mv imate imate-DoNotImport | |
pytest | |
- name: Coverage | |
run: | | |
python -m pip install codecov | |
codecov |