Adds additional CI checks for the backend and frontend, to complement pre-commit hooks which should already be run

This commit is contained in:
Trenton Holmes 2022-03-13 14:39:31 -07:00
parent 460f10f46a
commit ee1404d99e
4 changed files with 58 additions and 33 deletions

View File

@ -44,45 +44,68 @@ jobs:
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: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.9
cache: "pipenv"
cache-dependency-path: 'Pipfile.lock'
-
name: Install dependencies
name: Install checkers
run: |
pipenv sync --dev
pipx install reorder-python-imports
pipx install yesqa
pipx install add-trailing-comma
pipx install flake8
-
name: Codestyle
name: Run reorder-python-imports
run: |
cd src/
pipenv run pycodestyle --max-line-length=88 --ignore=E121,E123,E126,E226,E24,E704,W503,W504,E203
codeformatting:
runs-on: ubuntu-20.04
steps:
find src/ -type f -name '*.py' ! -path "*/migrations/*" | xargs reorder-python-imports
-
name: Checkout
uses: actions/checkout@v2
name: Run yesqa
run: |
find src/ -type f -name '*.py' ! -path "*/migrations/*" | xargs yesqa
-
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/
flake8 --max-line-length=88 --ignore=E203,W503
tests:
frontend-code-checks:
name: "Frontend Code Checks"
runs-on: ubuntu-20.04
steps:
-
name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
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
backend-tests:
needs: [backend-code-checks]
name: "Backend Tests (${{ matrix.python-version }})"
runs-on: ubuntu-20.04
strategy:
matrix:
@ -130,7 +153,7 @@ jobs:
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
@ -195,7 +218,7 @@ jobs:
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:
-

View File

@ -30,9 +30,6 @@ repos:
rev: "v2.5.1"
hooks:
- id: prettier
args:
- "--no-semi"
- "--single-quote"
types_or:
- javascript
- ts
@ -59,10 +56,8 @@ repos:
hooks:
- id: flake8
files: ^src/
exclude: "(migrations)|(paperless/settings.py)|(.*\\.tox)|(.*/tests/.*)"
args:
- "--max-line-length=88"
- "--ignore=E203,W503"
- "--config=./src/setup.cfg"
- repo: https://github.com/psf/black
rev: 22.1.0
hooks:

4
.prettierrc Normal file
View File

@ -0,0 +1,4 @@
# https://prettier.io/docs/en/options.html#semicolons
semi: false
# https://prettier.io/docs/en/options.html#quotes
singleQuote: true

View File

@ -1,5 +1,9 @@
[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
@ -7,7 +11,6 @@ addopts = --pythonwarnings=all --cov --cov-report=html -n auto
env =
PAPERLESS_DISABLE_DBHANDLER=true
[coverage:run]
source =
./