name: Test SQLite versions

on: [push, pull_request]

permissions:
  contents: read

jobs:
  test:
    runs-on: ${{ matrix.platform }}
    continue-on-error: true
    strategy:
      matrix:
        platform: [ubuntu-latest]
        python-version: ["3.9"]
        sqlite-version: [
          "3.46",
          "3.23.1", # 2018-04-10, before UPSERT
        ]
    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
        cache: pip
        cache-dependency-path: setup.py
    - name: Set up SQLite ${{ matrix.sqlite-version }}
      uses: asg017/sqlite-versions@71ea0de37ae739c33e447af91ba71dda8fcf22e6
      with:
        version: ${{ matrix.sqlite-version }}
        cflags: "-DSQLITE_ENABLE_DESERIALIZE -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_JSON1"
    - run: python3 -c "import sqlite3; print(sqlite3.sqlite_version)"
    - name: Install dependencies
      run: |
        pip install -e '.[test]'
        pip freeze
    - name: Run tests
      run: |
        python -m pytest
