Skip to content

[Backend] Update python dependencies #53

[Backend] Update python dependencies

[Backend] Update python dependencies #53

Workflow file for this run

name: QA backend
on:
workflow_call:
workflow_dispatch:
pull_request:
branches: ["main"]
jobs:
setup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12" # Cached by github (https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md#python)
cache: "pip"
cache-dependency-path: |
./backend/uv.lock
- name: Cache venv
id: cache-venv
uses: actions/cache@v3
with:
path: ./backend/.venv
key: python-3-12-venv-${{ hashFiles('./backend/uv.lock') }}
- name: Install dependencies
if: ${{ steps.cache-venv.outputs.cache-hit != 'true' }}
run: |
cd backend
python -m pip install --upgrade pip
pip install uv
uv sync --frozen
ruff:
needs: setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: |
./backend/uv.lock
- name: Cache venv
uses: actions/cache@v3
with:
path: ./backend/.venv
key: python-3-12-venv-${{ hashFiles('./backend/uv.lock') }}
- name: Run ruff
run: |
cd backend
. .venv/bin/activate
ruff check --select I .
ruff check .
ruff format --check .
mypy:
needs: setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: |
./backend/uv.lock
- name: Cache venv
uses: actions/cache@v3
with:
path: ./backend/.venv
key: python-3-12-venv-${{ hashFiles('./backend/uv.lock') }}
- name: Run mypy
run: |
cd backend
. .venv/bin/activate
mypy .
coverage:
needs: setup
runs-on: ubuntu-latest
services:
postgres:
image: postgis/postgis:16-3.4-alpine
env:
POSTGRES_DB: django_react_starter
POSTGRES_USER: django_react_starter
POSTGRES_PASSWORD: django_react_starter
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
meilisearch:
image: getmeili/meilisearch:v1.6.2
env:
MEILI_HTTP_ADDR: 0.0.0.0:7700
MEILI_MASTER_KEY: masterKey
ports:
- 7700:7700
options: --health-cmd="curl -f http://localhost:7700/health" --health-interval=10s --health-timeout=5s --health-retries=5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: |
./backend/uv.lock
- name: Cache venv
uses: actions/cache@v3
with:
path: ./backend/.venv
key: python-3-12-venv-${{ hashFiles('./backend/uv.lock') }}
- name: Install gdal-bin
run: sudo apt-get install gdal-bin
- name: Run coverage
env:
POSTGRES_HOST: localhost
POSTGRES_PORT: 5432
POSTGRES_USER: django_react_starter
POSTGRES_PASSWORD: django_react_starter
POSTGRES_DB: django_react_starter
MEILISEARCH_HOST: http://localhost:7700
MEILISEARCH_API_KEY: masterKey
run: |
cd backend
. .venv/bin/activate
python manage.py collectstatic --noinput --settings=django_react_starter.settings.test
coverage run --source='.' manage.py test --settings=django_react_starter.settings.test
coverage report --fail-under=90