Skip to content

Integration test

Integration test #41

name: Integration test
env:
version: 8.0.3
# runs on branches and pull requests; doesn't run on tags.
on:
push:
branches:
- '**'
pull_request:
branches:
- 'master'
jobs:
ubuntu-test:
runs-on: ubuntu-20.04
strategy:
fail-fast: true
matrix:
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v3
- name: Cache dependencies (soplex)
id: cache-soplex
uses: actions/cache@v3
with:
path: |
${{ runner.workspace }}/PySoPlex
key: ${{ runner.os }}-soplex-${{ env.version }}-${{ hashFiles('**/lockfiles') }}
restore-keys: |
${{ runner.os }}-soplex-${{ env.version }}-
- name: Install dependencies (soplex)
if: steps.cache-soplex.outputs.cache-hit != 'true'
run: |
sudo apt-get update
# install "libboost-all-dev" as well if needed
sudo apt-get install git cmake gcc g++
git clone -b bugfix-70 https://github.com/scipopt/soplex.git
cd soplex
mkdir build
cd build
# set -DMPFR=On/Off and -DBOOST=On/Off explicity if needed
cmake ../ -DCMAKE_INSTALL_PREFIX=./install
make -j
make install
- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Prepare python environment
run: |
python -m pip install --upgrade pip
python -m pip install cython wheel pytest
- name: Install PySoPlex
run: |
export SOPLEX_DIR=${{ runner.workspace }}/PySoPlex/soplex/build/install
python -m pip install .
- name: Run pysoplex tests
run: |
export SOPLEX_DIR=${{ runner.workspace }}/PySoPlex/soplex/build/install
py.test
## Following Windows test produces linking errors; so turned it off for now
# windows-test-boost-off:
# runs-on: windows-latest
# strategy:
# matrix:
# python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11"]
# steps:
# - uses: actions/checkout@v3
#
# - name: Install dependencies (soplex)
# shell: powershell
# run: |
# git clone -b bugfix-70 https://github.com/scipopt/soplex.git
# cd soplex
# mkdir build
# cd build
# cmake -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Release -DMT=on -DMPFR=Off -DBOOST=Off ..
# cmake --build . --config Release
# cmake --install .
#
# - name: Setup python ${{ matrix.python-version }}
# uses: actions/setup-python@v4
# with:
# python-version: ${{ matrix.python-version }}
#
# - name: Prepare python environment
# shell: powershell
# run: |
# python -m pip install --upgrade pip
# python -m pip install cython wheel pytest
# which python
#
# - name: Install PySoPlex
# shell: powershell
# run: |
# $Env:SOPLEX_DIR = "${{ runner.workspace }}\PySoPlex\soplex\build\install"
# $Env:PATH += ";$Env:SOPLEX_DIR/bin"
# python -m pip install .
#
# - name: Run pysoplex tests
# shell: powershell
# run: |
# $Env:PATH += ";$Env:SOPLEX_DIR/bin"
# py.test
mac-test:
runs-on: macos-latest
strategy:
matrix:
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v3
- name: Cache dependencies (soplex)
id: cache-soplex
uses: actions/cache@v3
with:
path: |
${{ runner.workspace }}/PySoPlex
key: ${{ runner.os }}-soplex-${{ env.version }}-${{ hashFiles('**/lockfiles') }}
restore-keys: |
${{ runner.os }}-soplex-${{ env.version }}-
- name: Install dependencies (soplex)
if: steps.cache-soplex.outputs.cache-hit != 'true'
run: |
# install "boost" as well if needed
brew install git cmake
git clone -b bugfix-70 https://github.com/scipopt/soplex.git
cd soplex
mkdir build
cd build
# set -DMPFR=On/Off and -DBOOST=On/Off explicity if needed
cmake ../ -DCMAKE_INSTALL_PREFIX=./install
make -j
make install
- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Prepare python environment
run: |
python -m pip install --upgrade pip
python -m pip install cython wheel pytest
- name: Install PySoPlex
run: |
export SOPLEX_DIR=${{ runner.workspace }}/PySoPlex/soplex/build/install
python -m pip install .
- name: Run pysoplex tests
run: |
export SOPLEX_DIR=${{ runner.workspace }}/PySoPlex/soplex/build/install
export DYLD_LIBRARY_PATH=${{ runner.workspace }}/PySoPlex/soplex/build/install/lib:${DYLD_LIBRARY_PATH}
py.test
# ### if you need valgrind on mac, you can install it via
# # brew tap LouisBrunner/valgrind
# # brew install --HEAD LouisBrunner/valgrind/valgrind