Skip to content

Drop Python 3.9, add Python 3.13 to all CI #1012

Drop Python 3.9, add Python 3.13 to all CI

Drop Python 3.9, add Python 3.13 to all CI #1012

Workflow file for this run

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