diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml new file mode 100644 index 0000000..fde8e8d --- /dev/null +++ b/.github/workflows/tests.yaml @@ -0,0 +1,45 @@ +name: test +on: + push: + branches: + - "master" + - "feature/*" + - "hotfix/*" + - "release/*" + - "renovate/*" + pull_request: + workflow_dispatch: + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install dependencies + run: make setup + - name: Run Linters + run: make lint + test: + strategy: + matrix: + platform: [ubuntu-latest, macos-latest] + python: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13-dev'] + runs-on: ${{ matrix.platform }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python }} + cache: 'pip' + - name: Install dependencies + run: make setup + - name: Run tests + run: make test + env: + PYTEST_ADDOPTS: "--no-header -vv -rN" diff --git a/tox.ini b/tox.ini index b9b393d..706eac9 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,11 @@ -# Copyright 2017 Canonical Ltd. +# Copyright 2017,2024 Canonical Ltd. # Licensed under the LGPLv3, see LICENCE file for details. [tox] envlist = lint, py27, py35, docs # envlist = py27 +# If the system has tox < 4.8, installs a newer tox in a venv. +minversion = 4.8 [testenv] setenv =