macOS build #650
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: macOS build | |
on: | |
push: | |
branches: [ master, dev ] | |
schedule: | |
- cron: '0 0 * * 0' | |
jobs: | |
build: | |
runs-on: macos-latest | |
env: | |
KVXOPT_BUILD_GSL: 1 | |
KVXOPT_BUILD_FFTW: 1 | |
KVXOPT_BUILD_GLPK: 1 | |
KVXOPT_BUILD_OSQP: 1 | |
KVXOPT_BUILD_DSDP: 0 | |
SUITESPARSE_VERSION: 7.7.0 | |
SUITESPARSE_SHA256: 529b067f5d80981f45ddf6766627b8fc5af619822f068f342aab776e683df4f3 | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
suite-sparse: [lib_suitesparse] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install pytest pytest-cov coveralls numpy | |
- name: Install libraries | |
run: | | |
brew install openblas glpk gsl fftw osqp | |
brew list openblas glpk gsl fftw osqp | |
echo "KVXOPT_GSL_INC_DIR=$(brew --prefix)/include" >> $GITHUB_ENV | |
echo "KVXOPT_GSL_LIB_DIR=$(brew --prefix)/lib" >> $GITHUB_ENV | |
echo "KVXOPT_LAPACK_INC_DIR=$(brew --prefix)/lib" >> $GITHUB_ENV | |
echo "KVXOPT_BLAS_LIB_DIR=$(brew --prefix)/lib" >> $GITHUB_ENV | |
echo "KVXOPT_GLPK_INC_DIR=$(brew --prefix)/include" >> $GITHUB_ENV | |
echo "KVXOPT_GLPK_LIB_DIR=$(brew --prefix)/lib" >> $GITHUB_ENV | |
echo "KVXOPT_OSQP_INC_DIR=$(brew --prefix)/include/osqp" >> $GITHUB_ENV | |
echo "KVXOPT_OSQP_LIB_DIR=$(brew --prefix)/lib" >> $GITHUB_ENV | |
echo "KVXOPT_FFTW_INC_DIR=$(brew --prefix)/include" >> $GITHUB_ENV | |
echo "KVXOPT_FFTW_LIB_DIR=$(brew --prefix)/lib" >> $GITHUB_ENV | |
- name: Config suite-sparse library | |
run: | | |
brew install suite-sparse | |
brew list suite-sparse | |
echo "KVXOPT_SUITESPARSE_INC_DIR=$(brew --prefix)/include/suitesparse" >> $GITHUB_ENV | |
echo "KVXOPT_SUITESPARSE_LIB_DIR=$(brew --prefix)/lib" >> $GITHUB_ENV | |
if: ${{ matrix.suite-sparse == 'lib_suitesparse' }} | |
- name: Config suite-sparse source | |
run: | | |
wget https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/v${SUITESPARSE_VERSION}.tar.gz | |
echo "${SUITESPARSE_SHA256} v${SUITESPARSE_VERSION}.tar.gz" > SuiteSparse.sha256 | |
shasum -a 256 -c SuiteSparse.sha256 | |
tar -xf v${SUITESPARSE_VERSION}.tar.gz | |
echo "KVXOPT_SUITESPARSE_SRC_DIR=${{ github.workspace}}/SuiteSparse-${{ env.SUITESPARSE_VERSION }}" >> $GITHUB_ENV | |
if: ${{ matrix.suite-sparse == 'src_suitesparse' }} | |
- name: Install | |
run: | | |
python setup.py build | |
pip install . | |
- name: Test | |
run: | | |
echo ${KVXOPT_SUITESPARSE_SRC_DIR} | |
python -c 'from kvxopt import blas,lapack,glpk,osqp,fftw,gsl,cholmod,umfpack,klu' | |
pytest --cov=kvxopt tests/ |