Add Windows/MacOS to test-sundials CI #83
Workflow file for this run
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: 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, cannot access openssl | |
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 }} |