Merge pull request #537 from ModECI/nml_examples #2456
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: CI | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
release: | |
types: | |
- published | |
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/action@v3.0.1 | |
with: | |
extra_args: --hook-stage manual --all-files | |
checks: | |
name: Check Python ${{ matrix.python-version }} on ${{ matrix.runs-on }} | |
runs-on: ${{ matrix.runs-on }} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ "3.9", "3.10", "3.11"] | |
runs-on: [ubuntu-latest, macos-latest, windows-latest] | |
exclude: | |
- runs-on: macos-latest | |
python-version: "3.9" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
# Rely on version of modelspec from PyPI as set by setup.cfg... | |
#- name: Install modelspec | |
# run: python -m pip install git+https://github.com/ModECI/modelspec.git@main | |
# Rely on version of NeuroMLlite from PyPI as set by setup.py... | |
# - name: Install NeuroMLlite | |
# run: python -m pip install NeuroMLlite>=0.5.0 | |
# Rely on version of PsyNeuLink from PyPI as set by setup.py... | |
#- name: Install specific PsyNeuLink branch | |
# run: python -m pip install git+https://github.com/ModECI/PsyNeuLink@devel | |
- name: Install HDF5 for pytables on macos-14/latest | |
if: ${{ matrix.runs-on == 'macos-latest' }} | |
run: | | |
brew install hdf5 | |
- name: Install core package | |
run: | | |
pip install 'numpy<2.0.0' # due to lingering issues with other modules & numpy v2... | |
python -m pip install .[dev] | |
- name: Version info for installed packages | |
run: | | |
pip list | |
- name: Test core package | |
run: | | |
python -m pytest -m coremdf tests/ | |
- name: Install most optional dependencies | |
run: | | |
python -m pip install .[optional] | |
- name: Version info for optional installed packages | |
run: | | |
pip list | |
- name: Install graphviz | |
uses: ts-graphviz/setup-graphviz@v2 | |
with: | |
# Skip to run brew update command on macOS. | |
macos-skip-brew-update: 'true' # default false | |
- name: Test interface ACT-R | |
run: | | |
python -m pytest -v -m "actr" tests/ | |
- name: Test interface PyTorch | |
run: | | |
python -m pytest -v -m "pytorch" tests/ | |
- name: Test interface NeuroML | |
run: | | |
python -m pip install .[neuroml] | |
python -m pytest -v -m "neuroml" tests/ | |
- name: Test interface TensorFlow | |
run: | | |
python -m pip install .[tensorflow] | |
dot -V | |
python -m pytest -v -m "tensorflow" tests/ | |
- name: Test interface PsyNeuLink | |
run: | | |
python -m pip install .[psyneulink] | |
python -m pytest -v -m "psyneulink" tests/ | |
- name: Build Documentation | |
run: | | |
cd docs | |
python generate.py | |
cd sphinx | |
make clean | |
make html | |
- name: Final version info for optional installed packages | |
run: | | |
pip list | |
dist: | |
name: Distribution build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build sdist and wheel | |
run: pipx run --spec build pyproject-build | |
- uses: actions/upload-artifact@v4 | |
with: | |
path: dist | |
- uses: pypa/gh-action-pypi-publish@v1.4.1 | |
if: github.event_name == 'release' && github.event.action == 'published' | |
with: | |
user: __token__ | |
# Remember to generate this and set it in "GitHub Secrets" | |
password: ${{ secrets.pypi_password }} |