name: CI on: push: branches: - master pull_request: jobs: tests: name: Python ${{ matrix.python-version }} runs-on: ubuntu-20.04 strategy: matrix: python-version: - '3.6' - '3.7' - '3.8' - '3.9' steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - uses: actions/cache@v2 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('requirements/*.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Upgrade packaging tools run: python -m pip install --upgrade pip setuptools virtualenv wheel - name: Install dependencies run: python -m pip install --upgrade codecov tox - name: Run tox targets for ${{ matrix.python-version }} run: | ENV_PREFIX=$(tr -C -d "0-9" <<< "${{ matrix.python-version }}") TOXENV=$(tox --listenvs | grep "^py$ENV_PREFIX" | tr '\n' ',') tox - name: Run extra tox targets if: ${{ matrix.python-version == '3.9' }} run: | python setup.py bdist_wheel rm -r djangorestframework.egg-info # see #6139 tox -e base,dist,docs tox -e dist --installpkg ./dist/djangorestframework-*.whl - name: Upload coverage run: | codecov -e TOXENV,DJANGO