# 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