dotnet test als Schritt in den Workflow aufnehmen, sodass ein roter Test den Build/Push stoppt. Baustein fuer das Health-Gate.
Zu beachten (Docker im Test-Schritt): Die Integrationstests (PocketBaseFixture)
starten selbst einen PocketBase-Container über docker compose (-p eb-test-stack,
aus compose.yaml + compose.dev.yaml + compose.test.yaml). Der CI-Runner braucht
also nicht nur das .NET-SDK, sondern eine funktionierende docker compose-Umgebung
im Test-Job. Der eigentliche Knackpunkt ist genau das (Docker-Socket / Docker-in-Docker
auf dem Runner), nicht der dotnet test-Aufruf selbst. Der bestehende Build-Job nutzt docker/setup-buildx-action, das reicht aber nur zum Bauen — ein laufender Compose-Stack
im selben Job ist damit noch nicht garantiert. Alternativ ließen sich Unit-Tests (ohne
Docker) und Integrationstests trennen, damit wenigstens die Unit-Tests ohne Docker gaten.
dotnet test als Schritt in den Workflow aufnehmen, sodass ein roter Test den Build/Push stoppt. Baustein fuer das Health-Gate.
---
**Zu beachten (Docker im Test-Schritt):** Die Integrationstests (`PocketBaseFixture`)
starten selbst einen PocketBase-Container über `docker compose` (`-p eb-test-stack`,
aus `compose.yaml` + `compose.dev.yaml` + `compose.test.yaml`). Der CI-Runner braucht
also nicht nur das .NET-SDK, sondern eine funktionierende `docker compose`-Umgebung
im Test-Job. Der eigentliche Knackpunkt ist genau das (Docker-Socket / Docker-in-Docker
auf dem Runner), nicht der `dotnet test`-Aufruf selbst. Der bestehende Build-Job nutzt
`docker/setup-buildx-action`, das reicht aber nur zum Bauen — ein laufender Compose-Stack
im selben Job ist damit noch nicht garantiert. Alternativ ließen sich Unit-Tests (ohne
Docker) und Integrationstests trennen, damit wenigstens die Unit-Tests ohne Docker gaten.
Tom
added this to the Elternbeirat-Website milestone 2026-09-22 13:24:13 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
dotnet test als Schritt in den Workflow aufnehmen, sodass ein roter Test den Build/Push stoppt. Baustein fuer das Health-Gate.
Zu beachten (Docker im Test-Schritt): Die Integrationstests (
PocketBaseFixture)starten selbst einen PocketBase-Container über
docker compose(-p eb-test-stack,aus
compose.yaml+compose.dev.yaml+compose.test.yaml). Der CI-Runner brauchtalso nicht nur das .NET-SDK, sondern eine funktionierende
docker compose-Umgebungim Test-Job. Der eigentliche Knackpunkt ist genau das (Docker-Socket / Docker-in-Docker
auf dem Runner), nicht der
dotnet test-Aufruf selbst. Der bestehende Build-Job nutztdocker/setup-buildx-action, das reicht aber nur zum Bauen — ein laufender Compose-Stackim selben Job ist damit noch nicht garantiert. Alternativ ließen sich Unit-Tests (ohne
Docker) und Integrationstests trennen, damit wenigstens die Unit-Tests ohne Docker gaten.