Skip to content

InstaNovo 1.0.0 code tests #96

InstaNovo 1.0.0 code tests

InstaNovo 1.0.0 code tests #96

# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: Test on multiple Python versions and on multiple operating systems
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
build:
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11"] # "3.12"
os: [ubuntu-latest, windows-latest] # macos-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip" # caching pip dependencies
cache-dependency-path: "**/requirements*.txt"
- name: Install dependencies
run: |
python -m pip install --upgrade uv
uv pip install --system -r requirements/requirements.txt
uv pip install --system -r requirements/requirements-dev.txt
- name: Lint with pre-commit
run: |
pre-commit run --all-files -c .pre-commit-config.yaml
- name: Test with pytest
run: |
python -m instanovo.scripts.get_zenodo_record.py
pytest -v --alluredir=allure_results --cov-report=html --cov --cov-config=.coveragerc --random-order
coverage report -m
- name: Test notebooks on Linux
if: runner.os != 'Windows' && github.ref == 'refs/heads/main' && github.event_name == 'push'
run: |
PYDEVD_DISABLE_FILE_VALIDATION=1 python -m ipykernel install --user --name instanovo
pytest --nbmake "./notebooks" --nbmake-kernel=instanovo --nbmake-timeout=10000
- name: Test notebooks on Windows
if: runner.os == 'Windows' && github.ref == 'refs/heads/main' && github.event_name == 'push'
run: |
$env:PYDEVD_DISABLE_FILE_VALIDATION=1; python -m ipykernel install --user --name instanovo
pytest --nbmake "./notebooks" --nbmake-kernel=instanovo --nbmake-timeout=10000