Minor update #381
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: Continuous builds | |
on: | |
push: | |
branches: [ main, development, experimental, test* ] | |
pull_request: | |
branches: [ main, development, experimental, test* ] | |
jobs: | |
pre-commit: | |
name: Format | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
- uses: pre-commit/[email protected] | |
with: | |
extra_args: --hook-stage manual --all-files | |
build: | |
name: Build for Python ${{ matrix.python-version }} on ${{ matrix.runs-on }} | |
runs-on: ${{ matrix.runs-on }} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ] | |
runs-on: [ubuntu-latest, macos-latest, windows-latest] | |
exclude: | |
- runs-on: macos-latest | |
python-version: "3.8" | |
- runs-on: macos-latest | |
python-version: "3.9" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install HDF5 for pytables on macos-14 | |
if: ${{ matrix.runs-on == 'macos-latest' }} | |
run: | | |
brew install hdf5 | |
- name: Install package | |
run: | | |
python -m pip install --upgrade pip | |
pip install 'numpy<2.0.0' # due to lingering issues with other modules & numpy... | |
pip install .[dev] | |
- name: Lint with flake8 | |
run: | | |
flake8 . --count --exit-zero --show-source --max-line-length=127 --statistics | |
- name: List packages so far | |
run: | | |
pip list | |
- name: Run simple examples | |
run: | | |
cd examples | |
python document.py | |
git diff | |
cd test | |
python test.py | |
- name: Test NeuroML examples | |
run: | | |
cd examples/neuroml2 | |
python neuroml2_spec.py | |
# Note: NeuroML files will be validated with OMV below | |
- name: Test SBML examples | |
run: | | |
cd examples/sbml | |
./regenerateAndTest.sh | |
- name: Run pytest | |
run: | | |
pytest tests -v | |
- name: Test NeuroMLlite | |
run: | | |
git clone --branch development https://github.com/NeuroML/NeuroMLlite.git | |
cd NeuroMLlite | |
# pip install . # Use versions of neuroml libs as set in modelspec's setup.cfg -> dev -> NeuroMLlite | |
cd examples | |
python Example1.py | |
- name: Install MDF | |
run: | | |
git clone --branch development https://github.com/ModECI/MDF.git | |
cd MDF | |
pip install . | |
cd examples/MDF | |
python arrays.py -run # test one example | |
- name: Build Documentation | |
run: | | |
# Note: contributors generation below fails on py 3.7 due to pandas version... | |
pip install .[docs] | |
cd docs | |
python generate.py | |
python contributors.py | |
cd sphinx | |
make clean | |
make html | |
- name: Install and test with OMV | |
if: ${{ matrix.runs-on != 'windows-latest' }} | |
run: | | |
# Note: OMV not well tested on Windows... | |
pip install git+https://github.com/OpenSourceBrain/osb-model-validation | |
pip install scipy sympy matplotlib cython pandas tables | |
# Run OMV tests on all engines | |
cd examples | |
omv all -V | |
omv list -V # list installed engines | |
- name: Final version info | |
run: | | |
pip list | |
env |