Drop Python 3.9, add Python 3.13 to all CI #1012
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
name: Test | |
on: [push, pull_request] | |
env: | |
FORCE_COLOR: 1 | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] | |
numpy: [0, 1] | |
os: [ubuntu-latest, macos-latest, windows-latest, macos-14] | |
# Skip 3.9 on macos-14 - it only has 3.10+ | |
exclude: | |
- python-version: "3.9" | |
os: macos-14 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
allow-prereleases: true | |
- uses: actions/cache@v4 | |
name: Configure pip caching | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Install dependencies | |
run: | | |
pip install -e '.[test,mypy,flake8]' | |
- name: Optionally install tui dependencies | |
run: pip install -e '.[tui]' | |
- name: Optionally install numpy | |
if: matrix.numpy == 1 | |
run: pip install numpy | |
- name: Install SpatiaLite | |
if: matrix.os == 'ubuntu-latest' | |
run: sudo apt-get install libsqlite3-mod-spatialite | |
- name: On macOS with Python 3.10 test with sqlean.py | |
if: matrix.os == 'macos-latest' && matrix.python-version == '3.10' | |
run: pip install sqlean.py sqlite-dump | |
- name: Build extension for --load-extension test | |
if: matrix.os == 'ubuntu-latest' | |
run: |- | |
(cd tests && gcc ext.c -fPIC -shared -o ext.so && ls -lah) | |
- name: Run tests | |
run: | | |
pytest -v | |
- name: run mypy | |
run: mypy sqlite_utils tests | |
- name: run flake8 | |
run: flake8 | |
- name: Check formatting | |
run: black . --check | |
- name: Check if cog needs to be run | |
run: | | |
cog --check README.md docs/*.rst |