Skip to content

Remove EOL Python (#12) #10

Remove EOL Python (#12)

Remove EOL Python (#12) #10

Workflow file for this run

name: CI
on:
push:
branches:
- "master"
pull_request:
branches:
- "master"
jobs:
test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['pypy-3.9', 3.9, '3.10', 'pypy-3.10', '3.11', '3.12', '3.13']
cython: ['yes', 'no']
include:
- os: ubuntu-latest
path: ~/.cache/pip
- os: macos-latest
path: ~/Library/Caches/pip
- os: windows-latest
path: ~\AppData\Local\pip\Cache
exclude:
- os: macos-latest
python-version: 'pypy-3.9'
- os: macos-latest
python-version: 'pypy-3.10'
- os: windows-latest
python-version: 'pypy-3.9'
- os: windows-latest
python-version: 'pypy-3.10'
# - os: windows-latest
# cython: 'yes'
defaults:
run:
shell: bash
runs-on: ${{ matrix.os }}
env:
PYTHONIOENCODING: UTF-8
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set Up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Cache Install
id: restore-cache
uses: actions/cache@v4
with:
path: |
${{ matrix.path }}
poetry.lock
key: ${{ matrix.os }}-${{ matrix.python-version }}-pip-${{ hashFiles('pyproject.toml') }}-${{ hashFiles('tests/requirements.txt') }}
- name: Install Poetry
uses: snok/install-poetry@v1
with:
version: '1.8.3'
virtualenvs-create: false
- name: Install
run: poetry install
- name: Build Cython file
if: ${{ matrix.cython == 'yes' }}
run: make cythonize
- name: Style
if: ${{ ! startsWith(matrix.python-version, 'pypy-') && startsWith(matrix.os, 'ubuntu') }}
run: make check
- name: Tests
run: make test
- uses: codecov/codecov-action@v4
with:
file: coverage.xml
name: coverage-${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.cython }}
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true