name: Test on: push: branches: - master pull_request: workflow_dispatch: jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.8", "3.9", "3.10", "3.11", "pypy-3.8"] steps: - uses: actions/checkout@v3.5.2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install project dependencies run: | pip3 install --upgrade pip pip3 install codecov tox tox-gh-actions - name: Run online tests with tox run: tox -- -m online - name: Run offline tests with tox with no access to the Internet run: | # We're using unshare to take Internet access # away from tox so that we'll notice whenever some new test # is missing @pytest.mark.online decoration in the future unshare --map-root-user --net -- \ sh -c 'ip link set lo up; tox -- -m "not online"' - name: Run coverage run: codecov