diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..09c5aea --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,50 @@ +name: CI tests +on: + pull_request: + push: + branches: + - master + +concurrency: + # cancels running checks on new pushes + group: check-${{ github.ref }} + cancel-in-progress: true + +jobs: + + pytest: + name: Run Python unit tests + # Note that 20.04 is currently required until galvani supports mdbtools>=1.0. + runs-on: ubuntu-20.04 + + strategy: + fail-fast: false + max-parallel: 4 + matrix: + python-version: ['3.8', '3.9', '3.10', '3.11'] + + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + + - name: Install MDBTools OS dependency + run: | + sudo apt install -y mdbtools + + # tox-gh workflow following instructions at https://github.com/tox-dev/tox-gh + - name: Install tox + run: python -m pip install tox-gh + + - name: Setup tests + run: | + tox -vv --notest + + - name: Run all tests + run: | + tox --skip-pkg-install diff --git a/tox.ini b/tox.ini index f689865..435ae8c 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: 2017-2021 Christopher Kerr # SPDX-License-Identifier: GPL-3.0-or-later [tox] -envlist = py36,py37,py38,py39 +envlist = py36,py37,py38,py39,py310,py311 [testenv] deps = flake8 @@ -15,3 +15,10 @@ commands = [flake8] exclude = build,dist,*.egg-info,.cache,.git,.tox,__pycache__ max-line-length = 100 + +[gh] +python = + 3.11 = py311 + 3.10 = py310 + 3.9 = py39 + 3.8 = py38