name: Test on: [push] env: FORCE_COLOR: 1 jobs: test: runs-on: ${{ matrix.os }} strategy: matrix: python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] numpy: [0, 1] os: [ubuntu-latest, macos-latest, windows-latest] include: - os: ubuntu-latest python-version: "3.10" numpy: 0 pysqlite3_sqlite_3_37: 1 steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - uses: actions/cache@v2 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 numpy if: matrix.numpy == 1 run: pip install numpy - name: Optionall install pysqlite3 with SQLite 3.37 if: matrix.pysqlite3_sqlite_3_37 == 1 run: |- cd /tmp mkdir sqlite-3.37 cd sqlite-3.37 wget 'https://www.sqlite.org/2021/sqlite-amalgamation-3370000.zip' unzip sqlite-amalgamation-3370000.zip git clone https://github.com/coleifer/pysqlite3/ cp sqlite-amalgamation-3370000/sqlite3.[ch] pysqlite3 cd pysqlite3 pip install wheel python setup.py build_static build bdist_wheel pip install /tmp/sqlite-3.37/pysqlite3/dist/*.whl - 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