Files
MABEA/.gitea/workflows/ci.yml
T
patrickandClaude Sonnet 5 f2ca0ed905
CI / backend-tests (push) Successful in 53s
CI / frontend-build (push) Successful in 5m7s
Sprint 8: Excel-Import-Skript + CI Frontend-Build-Job
Import-Skript (backend/scripts/import_excel.py) liest die drei Ist-Listen
per stdlib zipfile/ElementTree (kein openpyxl), erzeugt idempotent
Objekttyp+Beladungsvorlage+Vorlagenpositionen je Datei, Material-Abgleich
über Artikelnummer. Rohdaten-Check bestätigt Mapping D=Artikelnummer
(testphasen.md ergänzt). Ausführung nur auf Zielsystem (Deployment-Regel).

CI: neuer frontend-build-Job (npm install + tsc --noEmit + vite build),
da React-PWA/Flutter bisher unabhängig von der Test-Pipeline waren.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L85hmKbvX7Cqkq47KnQhFt
2026-09-04 00:16:33 +02:00

71 lines
2.2 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)
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};\""
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: Typecheck + Build
run: npm run build