Skip to content

Add Windows/MacOS to test-sundials CI #84

Add Windows/MacOS to test-sundials CI

Add Windows/MacOS to test-sundials CI #84

Workflow file for this run

name: Test scikits-odes-sundials
on: [push, pull_request]
jobs:
tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
#- python-version: "3.7"
# sundials-version: "7.1.1"
# tox-env: py37
# sundials-precision: double
# sundials-index-size: 64
- python-version: "3.8"
sundials-version: "7.1.1"
tox-env: py38
sundials-precision: double
sundials-index-size: 64
- python-version: "3.9"
sundials-version: "7.1.1"
tox-env: py39
sundials-precision: double
sundials-index-size: 64
- python-version: "3.10"
sundials-version: "7.1.1"
tox-env: py310
sundials-precision: double
sundials-index-size: 64
- python-version: "3.11"
sundials-version: "7.1.1"
tox-env: py311
sundials-precision: double
sundials-index-size: 64
- python-version: "3.12"
sundials-version: "7.1.1"
tox-env: py312
sundials-precision: double
sundials-index-size: 64
- python-version: "3.13"
sundials-version: "7.1.1"
tox-env: py313
sundials-precision: double
sundials-index-size: 64
- python-version: "3.11"
sundials-version: "7.1.1"
tox-env: check-manifest
sundials-precision: double
sundials-index-size: 64
#- python-version: "3.11"
# sundials-version: "7.1.1"
# tox-env: checkreadme
# sundials-precision: double
# sundials-index-size: 64
- python-version: "3.11"
sundials-version: "7.1.1"
tox-env: py311
sundials-precision: double
sundials-index-size: 32
#- python-version: "3.11"
# sundials-version: "7.1.1"
# tox-env: py311
# sundials-precision: single
# sundials-index-size: 64
- python-version: "3.11"
sundials-version: "7.1.1"
tox-env: py311
sundials-precision: extended
sundials-index-size: 64
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install build dependencies
run: sudo apt-get install gfortran liblapack-dev
- name: Sundials cache
uses: actions/cache@v4
with:
path: ~/sundials
key: ${{ runner.os }}-sundials-${{ matrix.sundials-version }}
restore-keys: |
${{ runner.os }}-sundials-
- name: Install sundials
run: |
source ci_support/ensure_sundials_installed.sh &&
printf "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH\n export LIBRARY_PATH=$LIBRARY_PATH\n export CPATH=$CPATH" > sundials_env.sh
env:
SUNDIALS_VERSION: ${{ matrix.sundials-version }}
SUNDIALS_PRECISION: ${{ matrix.sundials-precision }}
SUNDIALS_INDEX_SIZE: ${{ matrix.sundials-index-size }}
- name: Get pip cache dir
id: pip-cache
run: |
echo "::set-output name=dir::$(pip cache dir)"
- name: pip cache
uses: actions/cache@v4
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-1
restore-keys: |
${{ runner.os }}-pip-
- name: Install python dependencies
run: |
python -m pip install --upgrade pip
python -m pip install "setuptools<=64.0.0"
python -m pip install --upgrade tox
- name: Run tests
run: |
cat sundials_env.sh
source sundials_env.sh &&
env &&
cd packages/scikits-odes-sundials &&
tox
env:
TOXENV: ${{ matrix.tox-env }}
tests-win-mac:
name: tests (${{ matrix.python-version }}, ${{matrix.sundials-version}}, ${{ matrix.os }}, double, 32)
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, macos-latest, macos-13]
python-version: ["3.9", "3.13"]
sundials-version: ["7.1.1"]
include:
- python-version: "3.9"
tox-env: py39
- python-version: "3.13"
tox-env: py313
# exclude:
# - os: windows-latest # Issue with tox venv, pip has no ssl access
# python-version: "3.9"
defaults:
run:
shell: bash -l {0}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup conda/python
uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
miniconda-version: latest
activate-environment: odes
python-version: ${{ matrix.python-version }}
- name: Setup SUNDIALS
run: conda install sundials=${{ matrix.sundials-version }} -c conda-forge
- name: Verify environment
run: |
conda info
conda list
- name: Set SUNDIALS installation path
run: |
if [[ "$RUNNER_OS" == "Windows" ]]; then
SUNDIALS_INST="$CONDA_PREFIX\Library"
else
SUNDIALS_INST="$CONDA_PREFIX"
fi
echo "SUNDIALS_INST is set to: $SUNDIALS_INST"
echo "SUNDIALS_INST=$SUNDIALS_INST" >> $GITHUB_ENV
- name: Install python dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade setuptools
python -m pip install --upgrade tox
- name: List info
run: |
conda info
conda list
- name: Run tests
working-directory: packages/scikits-odes-sundials
run: tox
env:
TOXENV: ${{ matrix.tox-env }}