Merge pull request #38 from derb12/update_internals #59
This file contains hidden or 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/**' | |
# cancel current jobs if a new job is started | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
# Use strings since yaml considers 3.10 equal to 3.1 | |
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.13t'] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
# fetch-depth: '0' is needed to fetch tags for hatch-vcs (and thus setuptools-scm) | |
# to generate the version correctly; only really needed for jobs that would build and | |
# upload to pypi, so ignore it since fetching the entire git history can take much longer | |
# than the default of fetching just the last commit | |
#with: | |
#fetch-depth: '0' | |
- name: Set up Python | |
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install required dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install . pytest | |
- name: Test with required dependencies | |
run: pytest . | |
- name: Install optional dependencies | |
id: install-optional | |
# uncomment below to allow skipping future versions | |
if: matrix.python-version != '3.13t' | |
run: python -m pip install .[full] | |
- name: Test with optional dependencies | |
if: steps.install-optional.outcome == 'success' | |
run: pytest . | |
test-min-dependencies: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.9'] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install minimum dependencies | |
# set installed versions using "==major.minor.*"" to allow bug fixes on patch versions | |
# for minimum supported versions | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install . "numpy==1.20.*" "scipy==1.6.*" pytest | |
- name: Test with minimum required dependencies | |
run: pytest . | |
- name: Install minimum optional dependencies | |
run: python -m pip install "pentapy==1.1.*" "numba==0.53.*" | |
- name: Test with minimum optional dependencies | |
run: pytest . | |
lint: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.13'] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install linting dependencies | |
run: python -m pip install ruff | |
- name: Lint | |
run: ruff check . |