ETL-QS-Suite, CI-Pipeline und korrigierte Pfade/DB
Some checks failed
ETL-QS / etl-tests (push) Failing after 44s
Some checks failed
ETL-QS / etl-tests (push) Failing after 44s
- Pfad-Defaults im DAG auf das Repo-Checkout /opt/airflow/git/current umgestellt (include-Skripte + etl_cache) und Ziel-DB auf analytics_pg_duckdb festgelegt - tests/: Fixture-Generator (>=4 Dateien je Quell-Ordner mit Dubletten/ Edge-Cases) und End-to-End-Runner mit 45 Pruefungen gegen erwartete Ergebnisse, inkl. README - .forgejo/workflows: CI laeuft die ETL-QS bei Aenderungen an ETL-Skript, tests/ oder Geo-Referenz (python:3.12-Container, runs-on docker) - .gitignore: .venv_test/ und generierte tests/fixtures/ ausgeschlossen Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
9cacfd7ae2
commit
82c393408f
8 changed files with 691 additions and 0 deletions
34
.forgejo/workflows/etl-tests.yml
Normal file
34
.forgejo/workflows/etl-tests.yml
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
name: ETL-QS
|
||||
|
||||
# Läuft bei Pushes und Pull Requests, sobald ETL-Logik, Tests oder die
|
||||
# Geo-Referenz angefasst werden. So bleibt der Lauf schnell und gezielt.
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "include/02_etl_angebote_zuschlaege.py"
|
||||
- "tests/**"
|
||||
- "etl_cache/geo_plz_koordinaten.csv"
|
||||
- ".forgejo/workflows/etl-tests.yml"
|
||||
pull_request:
|
||||
paths:
|
||||
- "include/02_etl_angebote_zuschlaege.py"
|
||||
- "tests/**"
|
||||
- "etl_cache/geo_plz_koordinaten.csv"
|
||||
- ".forgejo/workflows/etl-tests.yml"
|
||||
|
||||
jobs:
|
||||
etl-tests:
|
||||
runs-on: docker
|
||||
# python:3.12 (Debian) bringt git für den Checkout mit; das ETL-Skript
|
||||
# benötigt Python >= 3.10 (str | None-Syntax).
|
||||
container:
|
||||
image: python:3.12
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Test-Abhängigkeiten installieren
|
||||
run: pip install --no-cache-dir -r tests/requirements.txt
|
||||
|
||||
- name: ETL-QS ausführen (Fixtures erzeugen, ETL laufen, prüfen)
|
||||
run: python tests/run_tests.py
|
||||
Loading…
Add table
Add a link
Reference in a new issue