aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/tox.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/tox.yml')
-rw-r--r--.github/workflows/tox.yml88
1 files changed, 88 insertions, 0 deletions
diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml
new file mode 100644
index 0000000..e2004ad
--- /dev/null
+++ b/.github/workflows/tox.yml
@@ -0,0 +1,88 @@
+# This workflow will install dependencies and run tests/linters with a matrix of tox environments.
+
+name: CI
+
+on:
+ push:
+ branches:
+ - master
+ tags:
+ - '**'
+ pull_request:
+ branches:
+ - '**'
+
+jobs:
+ test:
+
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ max-parallel: 4
+ matrix:
+ tox-env: [py37, py38, py39, py310, pypy37, pypy38, pypy39, pygments]
+ include:
+ - tox-env: py37
+ python-version: '3.7'
+ - tox-env: py38
+ python-version: '3.8'
+ - tox-env: py39
+ python-version: '3.9'
+ - tox-env: py310
+ python-version: '3.10'
+ - tox-env: pypy37
+ python-version: pypy-3.7
+ - tox-env: pypy38
+ python-version: pypy-3.8
+ - tox-env: pypy39
+ python-version: pypy-3.9
+ - tox-env: pygments
+ python-version: '3.7'
+
+ env:
+ TOXENV: ${{ matrix.tox-env }}
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v3
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install dependencies
+ run: |
+ sudo apt-get install libtidy-dev
+ python -m pip install --upgrade pip tox coverage codecov
+ - name: Run tox
+ run: python -m tox
+ - name: Upload Results
+ if: success()
+ uses: codecov/codecov-action@v1
+ with:
+ file: ./coverage.xml
+ flags: unittests
+ name: ${{ matrix.tox-env }}
+ fail_ci_if_error: false
+
+ lint:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ max-parallel: 4
+ matrix:
+ tox-env: [flake8, pep517check, checkspelling]
+
+ env:
+ TOXENV: ${{ matrix.tox-env }}
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.7
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip tox
+ if [[ "$TOXENV" == 'checkspelling' ]]; then sudo apt-get install aspell aspell-en; fi
+ - name: Run tox
+ run: python -m tox