Skip to content

Build and Test on diverse OS #46

Build and Test on diverse OS

Build and Test on diverse OS #46

name: Unit tests on diverse OS
on: workflow_dispatch
permissions:
contents: read
jobs:
build:
strategy:
matrix:
# python-version: ["3.9", "3.10", "3.11"]
python-version: ["3.11"]
# os: [ubuntu-22.04, ubuntu-20.04, macos-latest, windows-latest]
os: [ubuntu-latest, macos-latest, windows-latest]
#
runs-on: ${{ matrix.os }}
continue-on-error: true
steps:
#
- name: Checkout repository
uses: actions/checkout@v3
#
- name: Setup conda
uses: s-weigand/setup-conda@v1
with:
update-conda: true
python-version: ${{ matrix.python-version }}
conda-channels: anaconda, conda-forge
#
- name: Build for MacOs
if: startsWith(matrix.os, 'macos')
run: |
conda install -c conda-forge -y plantuml
brew install suite-sparse llvm libomp
export CC=/usr/local/opt/llvm/bin/clang
export PATH=/usr/local/opt/llvm/bin:$PATH
export LDFLAGS=-L/usr/local/opt/llvm/lib
export CFLAGS=-I/usr/local/opt/llvm/include
echo $CC
echo $LDFLAGS
echo $CFLAGS
pip install --upgrade pip
pip install scipy numpy matplotlib sparseqr==1.2 networkx mpmath Cython
python setup.py build_ext --inplace
pip install .[cli,docs,test,build]
pytest
cd docs
make html
#
- name: Build for Windows
if: startsWith(matrix.os, 'windows')
run: |
conda install -c conda-forge -y suitesparse plantuml
$env:INCLUDE += ';C:\Miniconda\envs\__setup_conda\Library\include\suitesparse'
$env:PATH += ';C:\Miniconda\envs\__setup_conda\Library\include\suitesparse'
$env:LIB += ';C:\Miniconda\envs\__setup_conda\Library\include\suitesparse;C:\Miniconda\envs\__setup_conda\Lib\site-packages'
pip install --upgrade pip
pip install scipy numpy matplotlib sparseqr==1.2 networkx mpmath Cython
python setup.py build_ext --inplace
pip install .[cli,docs,test,build]
pytest
cd docs
make html
#
# mkdir "C:\Users\runneradmin\miniconda3"
# mkdir "C:\Users\runneradmin\miniconda3\envs"
# mkdir "C:\Users\runneradmin\miniconda3\envs\__setup_conda"
# mkdir "C:\Users\runneradmin\miniconda3\envs\__setup_conda\Library"
# mkdir "C:\Users\runneradmin\miniconda3\envs\__setup_conda\Library\include"
# mkdir "C:\Users\runneradmin\miniconda3\envs\__setup_conda\Library\include\suitesparse"
# Copy-Item -Path "C:\Miniconda\envs\__setup_conda\Library\include\suitesparse\SuiteSparseQR_C.h" -Destination "C:\Users\runneradmin\miniconda3\envs\__setup_conda\Library\include\suitesparse"
# Copy-Item -Path "C:\Miniconda\envs\__setup_conda\Library\include\suitesparse\cholmod.h" -Destination "C:\Users\runneradmin\miniconda3\envs\__setup_conda\Library\include\suitesparse"
# Copy-Item -Path "C:\Miniconda\envs\__setup_conda\Library\include\suitesparse\cholmod_io64.h" -Destination "C:\Users\runneradmin\miniconda3\envs\__setup_conda\Library\include\suitesparse"
# Copy-Item -Path "C:\Miniconda\envs\__setup_conda\Library\include\suitesparse\SuiteSparse_config.h" -Destination "C:\Users\runneradmin\miniconda3\envs\__setup_conda\Library\include\suitesparse"
# Copy-Item -Path "D:\a\choreo\choreo\sparseqr_gen.py" -Destination "C:\Miniconda\envs\__setup_conda\Lib\site-packages\sparseqr"
- name: Build for Ubuntu
if: startsWith(matrix.os, 'ubuntu')
run: |
conda install -c conda-forge -y suitesparse clang plantuml openmp
pip install --upgrade pip
pip install scipy numpy matplotlib sparseqr==1.2 networkx mpmath Cython
python setup.py build_ext --inplace
pip install .[cli,docs,test,build]
pytest
cd docs
make html