From b5efdbbc2e4bcbca4afd1fe5c4a1fad8e9410f5b Mon Sep 17 00:00:00 2001 From: Lars Date: Sat, 4 Jul 2026 19:58:31 +0200 Subject: [PATCH] CI: test.yml auch bei Push auf main (Prod-Tests ohne workflow_run). Co-authored-by: Cursor --- .gitea/workflows/test.yml | 16 ++++++++++++++-- docs/DEPLOYMENT.md | 6 +++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index 6c30656..c0a2997 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -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 diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md index 1c7eac6..fcbcf95 100644 --- a/docs/DEPLOYMENT.md +++ b/docs/DEPLOYMENT.md @@ -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). ---