tests #46
Workflow file for this run
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
# 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 . |