name: documentation
path: docs/_build/html/
- codestyle:
+ backend-code-checks:
+ name: "Backend Code Checks"
runs-on: ubuntu-20.04
steps:
-
name: Checkout
uses: actions/checkout@v2
-
- name: Install pipenv
- run: pipx install pipenv
+ name: Install checkers
+ run: |
+ pipx install reorder-python-imports
+ pipx install yesqa
+ pipx install add-trailing-comma
+ pipx install flake8
-
- name: Set up Python
- uses: actions/setup-python@v2
- with:
- python-version: 3.9
- cache: "pipenv"
- cache-dependency-path: 'Pipfile.lock'
+ name: Run reorder-python-imports
+ run: |
+ find src/ -type f -name '*.py' ! -path "*/migrations/*" | xargs reorder-python-imports
-
- name: Install dependencies
+ name: Run yesqa
run: |
- pipenv sync --dev
+ find src/ -type f -name '*.py' ! -path "*/migrations/*" | xargs yesqa
-
- name: Codestyle
+ name: Run add-trailing-comma
+ run: |
+ find src/ -type f -name '*.py' ! -path "*/migrations/*" | xargs add-trailing-comma
+ # black is placed after add-trailing-comma because it may format differently
+ # if a trailing comma is added
+ -
+ name: Run black
+ uses: psf/black@stable
+ with:
+ options: "--check --diff"
+ version: "22.1.0"
+ -
+ name: Run flake8 checks
run: |
cd src/
- pipenv run pycodestyle --max-line-length=88 --ignore=E121,E123,E126,E226,E24,E704,W503,W504,E203
- codeformatting:
+ flake8 --max-line-length=88 --ignore=E203,W503
+
+ frontend-code-checks:
+ name: "Frontend Code Checks"
runs-on: ubuntu-20.04
steps:
-
name: Checkout
uses: actions/checkout@v2
- -
- name: Run black
- uses: psf/black@stable
+ - uses: actions/setup-node@v2
with:
- options: "--check --diff"
- version: "22.1.0"
+ node-version: '16'
+ -
+ name: Install prettier
+ run: |
+ npm install prettier
+ -
+ name: Run prettier
+ run:
+ npx prettier --check --ignore-path Pipfile.lock **/*.js **/*.ts *.md **/*.md
- tests:
+ backend-tests:
+ needs: [backend-code-checks]
+ name: "Backend Tests (${{ matrix.python-version }})"
runs-on: ubuntu-20.04
strategy:
matrix:
build-docker-image:
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/heads/feature-') || github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/beta' || startsWith(github.ref, 'refs/tags/ngx-') || startsWith(github.ref, 'refs/tags/beta-'))
runs-on: ubuntu-latest
- needs: [tests, codeformatting, codestyle]
+ needs: [backend-tests, frontend-code-checks]
steps:
-
name: Prepare
path: src/documents/static/frontend/
build-release:
- needs: [build-docker-image, documentation, tests, codeformatting, codestyle]
+ needs: [build-docker-image, documentation, backend-tests, backend-code-checks, frontend-code-checks]
runs-on: ubuntu-20.04
steps:
-
-[pycodestyle]
-exclude = migrations, paperless/settings.py, .tox, */tests/*
+[flake8]
+extend-exclude = */migrations/*, paperless/settings.py, */tests/*
+# E203 - https://www.flake8rules.com/rules/E203.html
+# W503 - https://www.flake8rules.com/rules/W503.html
+ignore = E203,W503
+max-line-length = 88
[tool:pytest]
DJANGO_SETTINGS_MODULE=paperless.settings
env =
PAPERLESS_DISABLE_DBHANDLER=true
-
[coverage:run]
source =
./