name: Linting Checks
runs-on: ubuntu-latest
steps:
- - name: Checkout repository
+ -
+ name: Checkout repository
uses: actions/checkout@v3
- - name: Install tools
- uses: actions/setup-python@v3
+ -
+ name: Install tools
+ uses: actions/setup-python@v4
+ with:
+ python-version: "3.9"
- - name: Check files
+ -
+ name: Check files
uses: pre-commit/action@v3.0.0
documentation:
pipenv run coveralls --service=github
tests-frontend:
- name: "Tests"
+ name: "Tests Frontend"
runs-on: ubuntu-20.04
needs:
- pre-commit
node-version: [16.x]
steps:
- uses: actions/checkout@v3
- - name: Use Node.js ${{ matrix.node-version }}
+ -
+ name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
+++ /dev/null
-name: Backend CI Jobs
-
-on:
- workflow_call:
-
-jobs:
-
- code-checks-backend:
- name: "Code Style Checks"
- runs-on: ubuntu-20.04
- steps:
- -
- name: Checkout
- uses: actions/checkout@v3
- -
- name: Install checkers
- run: |
- pipx install reorder-python-imports
- pipx install yesqa
- pipx install add-trailing-comma
- pipx install flake8
- -
- name: Run reorder-python-imports
- run: |
- find src/ -type f -name '*.py' ! -path "*/migrations/*" | xargs reorder-python-imports
- -
- 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.3.0"
- -
- name: Run flake8 checks
- run: |
- cd src/
- flake8 --max-line-length=88 --ignore=E203,W503
-
- tests-backend:
- name: "Tests (${{ matrix.python-version }})"
- runs-on: ubuntu-20.04
- needs:
- - code-checks-backend
- strategy:
- matrix:
- python-version: ['3.8', '3.9', '3.10']
- fail-fast: false
- steps:
- -
- name: Checkout
- uses: actions/checkout@v3
- with:
- fetch-depth: 2
- -
- name: Install pipenv
- run: pipx install pipenv
- -
- name: Set up Python
- uses: actions/setup-python@v4
- with:
- python-version: "${{ matrix.python-version }}"
- cache: "pipenv"
- cache-dependency-path: 'Pipfile.lock'
- -
- name: Install system dependencies
- run: |
- sudo apt-get update -qq
- sudo apt-get install -qq --no-install-recommends unpaper tesseract-ocr imagemagick ghostscript libzbar0 poppler-utils
- -
- name: Install Python dependencies
- run: |
- pipenv sync --dev
- -
- name: Tests
- run: |
- cd src/
- pipenv run pytest
- -
- name: Get changed files
- id: changed-files-specific
- uses: tj-actions/changed-files@v24
- with:
- files: |
- src/**
- -
- name: List all changed files
- run: |
- for file in ${{ steps.changed-files-specific.outputs.all_changed_files }}; do
- echo "${file} was changed"
- done
- -
- name: Publish coverage results
- if: matrix.python-version == '3.9' && steps.changed-files-specific.outputs.any_changed == 'true'
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # https://github.com/coveralls-clients/coveralls-python/issues/251
- run: |
- cd src/
- pipenv run coveralls --service=github
-
- dockerfile-lint:
- name: "Lint ${{ matrix.dockerfile }}"
- runs-on: ubuntu-20.04
- strategy:
- matrix:
- dockerfile:
- - Dockerfile
- - docker-builders/Dockerfile.qpdf
- - docker-builders/Dockerfile.jbig2enc
- - docker-builders/Dockerfile.psycopg2
- - docker-builders/Dockerfile.pikepdf
- fail-fast: false
- steps:
- -
- name: Checkout
- uses: actions/checkout@v3
- -
- uses: hadolint/hadolint-action@v2.1.0
- with:
- dockerfile: ${{ matrix.dockerfile }}
+++ /dev/null
-name: Frontend CI Jobs
-
-on:
- workflow_call:
-
-jobs:
-
- code-checks-frontend:
- name: "Code Style Checks"
- runs-on: ubuntu-20.04
- steps:
- -
- name: Checkout
- uses: actions/checkout@v3
- - uses: actions/setup-node@v3
- 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
- tests-frontend:
- name: "Tests"
- runs-on: ubuntu-20.04
- needs:
- - code-checks-frontend
- strategy:
- matrix:
- node-version: [16.x]
- steps:
- - uses: actions/checkout@v3
- - name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v3
- with:
- node-version: ${{ matrix.node-version }}
- - run: cd src-ui && npm ci
- - run: cd src-ui && npm run test
- - run: cd src-ui && npm run e2e:ci