Skip to content

macOS build

macOS build #657

Workflow file for this run

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/