Skip to content

Test against latest dependencies #210

Test against latest dependencies

Test against latest dependencies #210

Workflow file for this run

name: Test against latest dependencies
on:
schedule:
- cron: '25 5 * * SUN'
workflow_dispatch:
jobs:
get_python_versions:
name: "Determine Python versions"
runs-on: ubuntu-latest
outputs:
min-python: ${{ steps.nep29.outputs.min-python }}
max-python: ${{ steps.nep29.outputs.max-python }}
steps:
- name: "calculate versions according to NEP29"
id: nep29
uses: mstimberg/[email protected]
with:
include-release-candidates: true
include-beta-releases: true
token: ${{ secrets.GITHUB_TOKEN }}
testing:
needs: [get_python_versions]
name: "Python ${{ matrix.python-version }} on ${{ matrix.os.image }} (standalone: ${{ matrix.standalone }}, 32bit: ${{ matrix.float_dtype_32 }})"
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
os: [{image: macOS-12, triplet: x64-osx}]
standalone: [false, true]
float_dtype_32: [false]
python-version: ["${{ needs.get_python_versions.outputs.max-python }}"]
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install GSL
uses: johnwason/vcpkg-action@v6
id: vcpkg
with:
pkgs: gsl
triplet: ${{ matrix.os.triplet }}
cache-key: gsl-${{ matrix.os.triplet }}
revision: master
token: ${{ github.token }}
- name: Set GSL preference for vcpkg
shell: bash
run: |
mkdir ~/.brian/
# Replaces backslashes with forward slashes
echo "GSL.directory=\"${{ github.workspace }}\\vcpkg\\installed\${{ matrix.os.triplet }}\\include"\" | tr '\\' '/' > ~/.brian/user_preferences
cat ~/.brian/user_preferences
- name: Install Python
id: python
uses: actions/setup-python@v5
with:
cache: 'pip'
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: Install scipy build dependencies (Linux)
run: sudo apt install -y gcc g++ gfortran libopenblas-dev liblapack-dev pkg-config python3-pip python3-dev
if: matrix.os.image == 'ubuntu-latest'
- name: Install scipy build dependencies (mac OS)
run: |
sudo ln -s $(which gfortran-13) /usr/local/bin/gfortran
brew install openblas pkg-config
brew --prefix openblas
ls $(brew --prefix openblas)
ls $(brew --prefix openblas)/lib/pkgconfig
# Export PKG_CONFIG_PATH to GitHub Actions environment
echo "PKG_CONFIG_PATH=/opt/homebrew/opt/openblas/lib/pkgconfig" >> $GITHUB_ENV
if: matrix.os.image == 'macOS-12' || matrix.os.image == 'macOS-14'
- name: Install dependencies
run: |
echo $PKG_CONFIG_PATH
ls $PKG_CONFIG_PATH || echo $PKG_CONFIG_PATH does not exist
${{ steps.python.outputs.python-path }} -m pip install --upgrade pip setuptools
${{ steps.python.outputs.python-path }} -m pip install --pre -i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --extra-index-url https://pypi.org/simple numpy scipy
${{ steps.python.outputs.python-path }} -m pip install mpmath # install stable version
${{ steps.python.outputs.python-path }} -m pip install --pre pytest cython sympy pyparsing jinja2 sphinx
- name: Install Brian2
run: |
${{ steps.python.outputs.python-path }} -m pip install --pre -i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --extra-index-url https://pypi.org/simple .
- name: Run Tests
run: |
cd ${{ github.workspace }}/.. # move out of the workspace to avoid direct import
${{ steps.python.outputs.python-path }} -Wd ${{ github.workspace }}/dev/continuous-integration/run_test_suite.py
env:
AGENT_OS: ${{runner.os}}
STANDALONE: ${{ matrix.standalone }}
FLOAT_DTYPE_32: ${{ matrix.float_dtype_32 }}
DO_NOT_RESET_PREFERENCES: true # Make sure that GSL setting is used