Skip to content

fix: prevent opentheso calls when indexing and concept_id is None #6219

fix: prevent opentheso calls when indexing and concept_id is None

fix: prevent opentheso calls when indexing and concept_id is None #6219

Workflow file for this run

name: Test
on:
pull_request:
types: [opened, reopened, synchronize, edited]
workflow_call:
env:
DJANGO_SECRET_KEY: n0t5os3cre7-${{ github.sha }}
EMAIL_HOST: localhost
EMAIL_PORT: 1025
EMAIL_HOST_USER:
EMAIL_HOST_PASSWORD:
EMAIL_USE_TLS: false
DEFAULT_FROM_EMAIL: h@ll.o
SITE_URL: http://localhost:8000
PYTHON_VERSION: 3.11.2
jobs:
python-checks:
runs-on: ubuntu-22.04
steps:
# -- block install --
- uses: actions/checkout@v2
- name: Use the cached python install for dev requirements
uses: actions/cache@v2
id: python-cache
with:
path: /opt/hostedtoolcache/Python/${{ env.PYTHON_VERSION }}
key: ${{ runner.os }}-python-${{ env.PYTHON_VERSION }}-${{ hashFiles('requirements/dev.txt', 'requirements/base.txt') }}
- uses: actions/setup-python@v2
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dev requirements
if: steps.python-cache.outputs.cache-hit != 'true'
run: pip install -r requirements/dev.txt
# -- endblock install --
- name: Install GNU gettext
run: sudo apt install gettext
- name: Pylint check
run: python -m pylint $(find . -type f -path '*.py' -not -path '*/migrations*')
- name: Black check
run: python -m black --check .
- name: Isort check
run: python -m isort --check .
- name: Flake8 check with mccabe complexity 10
run: python -m flake8 --max-complexity 10 .
- name: Check no migration is missing
run: ./manage.py makemigrations --check --dry-run
- name: Check no makemessages translation is missing
run: |
./manage.py makemessages --all --verbosity 0 --no-location --no-obsolete
git diff -I'^"PO' --exit-code locale/*/LC_MESSAGES/django.po # Fail if any change apart from headers.
git checkout -- locale/*/LC_MESSAGES/django.po
./manage.py makemessages --all --verbosity 0 --no-obsolete --no-location -d djangojs --ignore 'node_modules/*' --ignore 'venv/*' --ignore 'euphrosyne/assets/dist/*' -e js,tsx,ts,jsx
git diff -I'^"PO' --exit-code locale/*/LC_MESSAGES/djangojs.po # Fail if any change apart from headers.
git checkout -- locale/*/LC_MESSAGES/djangojs.po
- name: Check no translation is empty
run: |
# Inspired from https://blog.erw.dk/2015/06/06/checks-for-your-django-project/
missing_translations=$(sed '$a\\' locale/*/LC_MESSAGES/django.po | tac | sed '/^$/N;/\nmsgstr ""$/,/^msgid/!d' | tac)
[ $(wc -l <(echo $missing_translations) | cut -d ' ' -f1) = '1' ]
- name: Run mypy on selected folders
run: |
python -m mypy .
python-tests:
runs-on: ubuntu-22.04
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: password
POSTGRES_DB: euphrosyne
POSTGRES_USER: euphrosyne
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
# -- block install --
- uses: actions/checkout@v2
- name: Use the cached python install for dev requirements
uses: actions/cache@v2
id: python-cache
with:
path: /opt/hostedtoolcache/Python/${{ env.PYTHON_VERSION }}
key: ${{ runner.os }}-python-${{ env.PYTHON_VERSION }}-${{ hashFiles('requirements/dev.txt', 'requirements/base.txt') }}
- uses: actions/setup-python@v2
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dev requirements
if: steps.python-cache.outputs.cache-hit != 'true'
run: pip install -r requirements/dev.txt
- uses: actions/setup-node@v2
with:
node-version: 20
cache: "npm"
- name: Install modules
run: npm ci
- name: Build files with webpack
run: npm run build
# -- endblock install --
- name: Collect static files
run: rm -rf _static && python manage.py collectstatic --clear --noinput
- name: Pytest
run: python -m pytest .
env:
DB_HOST: localhost
DB_USER: euphrosyne
DB_PORT: 5432
DB_PASSWORD: password
DB_NAME: euphrosyne
frontend-tests:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 20
cache: "npm"
- name: Install modules
run: npm install
- name: Run eslint
run: npx eslint .
- name: Check Prettier
run: npx prettier -c $(git ls-files | grep -E '\.(js|json|yaml)$')
- name: Run tsc
run: npm run lint:tsc
- name: Run tests
run: npm run test