name: Python package on: push jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.8", "3.9", "3.10"] django-version: ["32","4"] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - uses: actions/cache@v2 with: path: ~/.cache/pip key: ${{ hashFiles('requirements.txt') }}-${{ hashFiles('requirements-testing.txt')}}-${{ hashFiles('tox.ini') }}-${{ matrix.python-version }}-${{ matrix.django-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt -r requirements-testing.txt -c constraints-Django${{ matrix.django-version }}.txt - name: Format style check with 'autopep8' run: | pip install autopep8 autopep8 --exit-code --global-config .flake8 helpdesk - name: Lint with 'flake8' run: | pip install flake8 # stop the build if there are Python syntax errors or undefined names # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 helpdesk --count --show-source --statistics --exit-zero --max-complexity=20 - name: Sort style check with 'isort' run: | isort --line-length=120 --src helpdesk . --check - name: Test with pytest run: | pip install pytest cd ${GITHUB_WORKSPACE} && python quicktest.py env: DJANGO_SETTINGS_MODULE: helpdesk.settings