Skip to content

tests

tests #46

Workflow file for this run

# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
# Will only trigger if there is a change within pybaselines or tests directories.
name: tests
on:
# allow manually activating the workflow
workflow_dispatch:
push:
branches: [ main ]
paths:
- 'pybaselines/**'
- 'tests/**'
- '.github/workflows/**'
pull_request:
# always trigger on a pull request, regardless of the branch
paths:
- 'pybaselines/**'
- 'tests/**'
- '.github/workflows/**'
jobs:
test:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
# Use strings since yaml considers 3.10 equal to 3.1
python-version: ['3.6', '3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install required dependencies
run: |
python -m pip install --upgrade pip
python -m pip install "numpy>=1.14" "scipy>=1.0" pytest
# Only lint a single version; pick a recent, stable version
- name: Install linting dependencies
id: install-linters
if: matrix.python-version == '3.10'
run: |
python -m pip install flake8 flake8-comprehensions flake8-docstrings
- name: Lint
if: steps.install-linters.outcome == 'success'
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings.
flake8 . --count --exit-zero --statistics
- name: Test with required dependencies
run: pytest .
- name: Install optional dependencies
id: install-optional
# uncomment below in case this step ever needs skipped again
if: matrix.python-version != '3.12'
run: python -m pip install "pentapy>=1.0" "numba>=0.45"
- name: Test with optional dependencies
# uncomment below in case this step ever needs skipped again
if: steps.install-optional.outcome == 'success'
run: pytest .
test-min-dependencies:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
python-version: ['3.6']
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install minimum dependencies
# Use numpy 1.14.5 rather than 1.14.0 since the optional
# dependency pentapy requires numpy>=1.14.5; no relevant difference
# between 1.14.0 and 1.14.5.
run: |
python -m pip install --upgrade pip
python -m pip install numpy==1.14.5 scipy==1.0 pytest
- name: Test with minimum required dependencies
run: pytest .
- name: Install minimum optional dependencies
# Have to pin llvmlite to 0.30.0 since it otherwise gets a more recent
# version that is imcompatible with numba v0.45
run: python -m pip install pentapy==1.0 numba==0.45 llvmlite==0.30.0
- name: Test with minimum optional dependencies
run: pytest .