All checks were successful
CI / lint (pull_request) Successful in 50s
CI / build (pull_request) Successful in 42s
CI / unit (pull_request) Successful in 47s
CI / mutation (pull_request) Successful in 1m31s
CI / integration (pull_request) Successful in 3m43s
CI / compose-smoke (pull_request) Successful in 4m1s
The hosted runner can't reach the stack's published ports (sibling containers), so run the seed and the test as containers joined to the OpenZaak network, reaching it by container IP — a single-label host like 'openzaak' isn't URL-valid for OpenZaak's own URLValidator, but an IPv4 literal is. Code is delivered via image build / docker cp (bind mounts don't reach the daemon either). - infra/run-integration.sh: up -> wait healthy (docker inspect) -> seed published zaaktype (python container on the net) -> build + run the test image on the net -> always tear down. Plain docker primitives only (portable docker/podman). - services/acl/Dockerfile.integration: builds + runs Acl.IntegrationTests; dotnet lives in the image, so the CI job needs only Docker (no setup-dotnet). - make integration now delegates to the script; re-added the Gitea Actions job. Supersedes the local-only gap documented earlier; #55 is no longer needed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
27 lines
1.5 KiB
Docker
27 lines
1.5 KiB
Docker
# Runs the ACL integration tests (Category=Integration) from *inside* the compose
|
|
# network, so they reach OpenZaak at http://openzaak:8000 by service name. On the
|
|
# hosted CI runner a process on the runner can't reach the stack's published ports
|
|
# (sibling containers — gitea-actions-gotchas.md §5), so the test runs as a
|
|
# container joined to that network instead. See ADR-0006 / #55.
|
|
#
|
|
# Build context is services/acl (like the service Dockerfile). dotnet lives in this
|
|
# image, so the CI `integration` job needs only Docker — no setup-dotnet step.
|
|
FROM mcr.microsoft.com/dotnet/sdk:10.0
|
|
WORKDIR /src
|
|
|
|
# Restore first (cached unless the .csproj files change). The integration test
|
|
# project pulls in Acl.Application + Acl.Infrastructure via its ProjectReferences.
|
|
COPY Acl.Application/Acl.Application.csproj Acl.Application/
|
|
COPY Acl.Infrastructure/Acl.Infrastructure.csproj Acl.Infrastructure/
|
|
COPY Acl.IntegrationTests/Acl.IntegrationTests.csproj Acl.IntegrationTests/
|
|
RUN dotnet restore Acl.IntegrationTests/Acl.IntegrationTests.csproj
|
|
|
|
COPY Acl.Application/ Acl.Application/
|
|
COPY Acl.Infrastructure/ Acl.Infrastructure/
|
|
COPY Acl.IntegrationTests/ Acl.IntegrationTests/
|
|
|
|
# OZ_BASE is supplied at run time (the OpenZaak container IP — see run-integration.sh,
|
|
# which passes `-e OZ_BASE=http://<ip>:8000`; a single-label host is not URL-valid).
|
|
ENTRYPOINT ["dotnet", "test", "Acl.IntegrationTests/Acl.IntegrationTests.csproj", \
|
|
"-c", "Release", "--filter", "Category=Integration"]
|