Files
MABEA/.gitea/workflows/ci.yml
T
patrickandClaude Sonnet 5 28d8b2957d
CI / backend-tests (push) Failing after 2m18s
CI / frontend-build (push) Failing after 17s
test(frontend): Vitest-Unit-Tests + CI-Integration, CLAUDE.md ignoriert
16 Tests ohne Browser-Abhängigkeit (jsdom): useIsDesktop (matchMedia-Reaktion),
client.ts (ApiError, Popup-Blocker-Fix bei ladeDokumentAnsehen), CommandPalette
(Debounce/Escape/Material-Treffer-Hinweis), ObjektListPage (Standort-
Gruppierung, Kacheln-Umschalter, localStorage-Persistenz, Suche). Vitest
separat von vite.config.ts (eigene vitest.config.ts), e2e/*.spec.ts (Playwright)
explizit ausgeschlossen. CI führt `npm run test` jetzt vor dem Build aus.

Nebenbei: CLAUDE.md ins .gitignore aufgenommen (bleibt lokal, nicht Teil des
Repos).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
2026-09-08 09:46:35 +02:00

79 lines
2.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
backend-tests:
runs-on: ubuntu-latest
# Runner läuft im Host-Modus ohne Docker (Nutzerentscheidung: kein Docker-Zwang,
# Prompt 19). Dadurch keine isolierten Service-Container möglich die Tests
# nutzen stattdessen die auf dem Runner-Host bereits laufende System-PostgreSQL
# und legen sich dort eine eigene, wegwerfbare Test-Datenbank an.
env:
TEST_DB_NAME: mabea_ci_test
TEST_DB_USER: mabea_ci
TEST_DB_PASSWORD: mabea_ci_test
DATABASE_URL: postgresql+asyncpg://mabea_ci:mabea_ci_test@localhost:5432/mabea_ci_test
JWT_SECRET_KEY: ci-test-secret-key
SYSTEMKNOTEN_ID: "1"
defaults:
run:
working-directory: backend
steps:
- uses: actions/checkout@v4
- name: Test-Datenbank anlegen (idempotent, System-PostgreSQL des Runner-Hosts)
# Explizit ENCODING UTF8 TEMPLATE template0: der Runner-Host-Cluster hat
# SQL_ASCII als Default-Encoding (via template1), CREATE DATABASE ohne
# explizite Angabe erbt das - jeder Test mit Umlauten in JSONB-Feldern
# (z.B. Historie-Einträge) schlug dadurch mit UntranslatableCharacterError
# fehl (Fund 2026-09-05, betraf auch die Produktions-DB).
run: |
su -s /bin/bash postgres -c "psql -tAc \"SELECT 1 FROM pg_roles WHERE rolname='${TEST_DB_USER}'\"" | grep -q 1 || \
su -s /bin/bash postgres -c "psql -c \"CREATE ROLE ${TEST_DB_USER} WITH LOGIN PASSWORD '${TEST_DB_PASSWORD}';\""
su -s /bin/bash postgres -c "psql -c \"DROP DATABASE IF EXISTS ${TEST_DB_NAME};\""
su -s /bin/bash postgres -c "psql -c \"CREATE DATABASE ${TEST_DB_NAME} OWNER ${TEST_DB_USER} ENCODING 'UTF8' TEMPLATE template0;\""
su -s /bin/bash postgres -c "psql -d ${TEST_DB_NAME} -c \"CREATE EXTENSION IF NOT EXISTS pgcrypto;\""
- name: Virtualenv + Dependencies installieren
run: |
python3 -m venv .venv
.venv/bin/pip install -q --upgrade pip
.venv/bin/pip install -q -e ".[dev]"
- name: Migrationen ausführen
run: .venv/bin/alembic upgrade head
- name: Tests mit Coverage-Gate
run: .venv/bin/pytest
- name: Test-Datenbank aufräumen
if: always()
run: su -s /bin/bash postgres -c "psql -c \"DROP DATABASE IF EXISTS ${TEST_DB_NAME};\""
frontend-build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: frontend
steps:
- uses: actions/checkout@v4
- name: Dependencies installieren
run: npm install
- name: Unit-Tests (Vitest)
run: npm run test
- name: Typecheck + Build
run: npm run build