CI: test.yml auch bei Push auf main (Prod-Tests ohne workflow_run).
All checks were successful
Deploy Development / deploy (push) Successful in 34s
Test Suite / pytest-backend (push) Successful in 3s
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 18s
Test Suite / playwright-smoke (push) Successful in 12s

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Lars 2026-07-04 19:58:31 +02:00
parent 1d8e22be82
commit b5efdbbc2e
2 changed files with 17 additions and 5 deletions

View File

@ -1,12 +1,13 @@
name: Test Suite
# develop: push/PR → Tests gegen deployte Dev-Instanz (wartet auf Container).
# main: kein push/PR — Prod-Tests via workflow_run nach Deploy Production.
# main: push → Prod-Tests gegen kairo (8004/3004), parallel zu deploy-prod.yml.
# workflow_run: optional (Gitea/act feuert oft nicht — push-Trigger ist maßgeblich).
# Frontend-Build: deploy-dev/prod (docker compose build backend frontend), nicht hier.
# compose-smoke (PR): eigener Stack auf CI-Ports 18197/13197 (kein Konflikt mit kairo-dev).
on:
push:
branches: [develop]
branches: [develop, main]
pull_request:
branches: [develop]
workflow_run:
@ -33,11 +34,16 @@ jobs:
APP_DIR="/home/lars/docker/kairo-dev"
COMPOSE_FILE="docker-compose.dev-env.yml"
fi
elif [ "$REF_NAME" = "main" ]; then
APP_DIR="/home/lars/docker/kairo"
COMPOSE_FILE="docker-compose.yml"
elif [ "$REF_NAME" = "develop" ] || [ "$BASE_REF" = "develop" ]; then
APP_DIR="/home/lars/docker/kairo-dev"
COMPOSE_FILE="docker-compose.dev-env.yml"
fi
echo "pytest gegen ${APP_DIR} (${COMPOSE_FILE})"
cd "$APP_DIR"
echo "Warte auf stabilen backend-Container …"
for i in $(seq 1 60); do
@ -127,8 +133,11 @@ jobs:
run: |
EVENT="${{ github.event_name }}"
WF_NAME="${{ github.event.workflow_run.name }}"
REF="${{ github.ref_name }}"
if [ "$EVENT" = "workflow_run" ] && [ "$WF_NAME" = "Deploy Production" ]; then
echo "base_url=http://localhost:8004" >> $GITHUB_OUTPUT
elif [ "$REF" = "main" ]; then
echo "base_url=http://localhost:8004" >> $GITHUB_OUTPUT
else
echo "base_url=http://localhost:8097" >> $GITHUB_OUTPUT
fi
@ -190,8 +199,11 @@ jobs:
run: |
EVENT="${{ github.event_name }}"
WF_NAME="${{ github.event.workflow_run.name }}"
REF="${{ github.ref_name }}"
if [ "$EVENT" = "workflow_run" ] && [ "$WF_NAME" = "Deploy Production" ]; then
echo "base_url=http://localhost:3004" >> $GITHUB_OUTPUT
elif [ "$REF" = "main" ]; then
echo "base_url=http://localhost:3004" >> $GITHUB_OUTPUT
else
echo "base_url=http://localhost:3097" >> $GITHUB_OUTPUT
fi

View File

@ -45,18 +45,18 @@ cp .env.example .env
2. **Pi-Runner registriert** — derselbe wie Shinkan/Mitai (`ubuntu-latest`)
3. Push `develop``deploy-dev.yml``curl http://localhost:8097/api/health`
4. Merge `main``deploy-prod.yml``curl http://localhost:8004/api/health`
5. Nach Deploy: `test.yml` (workflow_run) — pytest, k6, Playwright smoke gegen **localhost**
5. Push `main``deploy-prod.yml` + `test.yml` (Prod pytest/k6/Playwright auf localhost 8004/3004)
| Workflow | Trigger | Zweck |
|----------|---------|--------|
| `deploy-dev.yml` | Push `develop` | Deploy nach `/home/lars/docker/kairo-dev` |
| `deploy-prod.yml` | Push `main` | Deploy nach `/home/lars/docker/kairo` |
| `test.yml` | Push/PR `develop`, nach Deploy | lint, pytest, k6, Playwright (Frontend-Build läuft im Deploy via Docker) |
| `test.yml` | Push `develop`/`main`, PR `develop` | lint, pytest, k6, Playwright gegen deployte Instanz |
| `test.yml``compose-smoke` | Pull Request | Eigener Stack auf **CI-Ports 18197/13197** |
Struktur wie Shinkan: **Deploy** und **Test Suite** sind getrennte Workflows in Gitea.
Bei Push auf `develop` starten Deploy und Test Suite parallel; pytest wartet auf den Backend-Container der deployten Instanz (Ports 8097/3097). Nach Deploy Production feuert `workflow_run` die Prod-Tests (Ports 8004/3004).
Bei Push auf `develop` oder `main` starten Deploy und Test Suite parallel; pytest wartet auf den Backend-Container (Dev: 8097/3097, Prod: 8004/3004).
---