ci(e2e): отдельный maven-e2e job + surefire profile e2e

ordinis-app/pom.xml:
- surefire excludes **/e2e/*E2ETest.java по умолчанию (быстрые unit без Docker)
- profile `e2e`: combine.self override снимает excludes + includes только e2e

.gitlab-ci.yml: новый job maven-e2e:
- maven image + docker:29.1.2-dind service (тот же что docker-* jobs)
- DOCKER_HOST=tcp://docker:2375, TESTCONTAINERS_HOST_OVERRIDE=docker, RYUK_DISABLED=true
- mvn -pl ordinis-app -am -P e2e test
- artifact: junit reports
- rules: backend-changes (как maven-test)

Локально:
  mvn -pl ordinis-app -am test                  # быстро, без Docker
  mvn -pl ordinis-app -am -P e2e test           # с Docker, ~23 sec для 12 тестов

В CI оба job'а параллельно после path-filter. e2e будет ловить регрессии типа
audit_log INET/scope filter gap которые мы уже нашли через эти тесты.
This commit is contained in:
Zimin A.N.
2026-05-05 20:24:44 +03:00
parent 4747d85d15
commit cbaf4e6c9a
2 changed files with 60 additions and 0 deletions
+32
View File
@@ -119,6 +119,12 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- По умолчанию e2e тесты НЕ запускаются — нужны Postgres+Kafka
через Testcontainers (требует Docker). Включить через профиль
`-P e2e` (см. ниже). Локально: либо профиль, либо `-Dtest=*E2ETest`. -->
<excludes>
<exclude>**/e2e/*E2ETest.java</exclude>
</excludes>
<!-- Testcontainers требует DOCKER_HOST. На macOS Docker Desktop
socket в ~/.docker/run, не /var/run. ENV не наследуется в
forked surefire процесс по умолчанию — пробрасываем явно. -->
@@ -126,6 +132,10 @@
<DOCKER_HOST>${env.DOCKER_HOST}</DOCKER_HOST>
<DOCKER_API_VERSION>1.45</DOCKER_API_VERSION>
<TESTCONTAINERS_RYUK_DISABLED>true</TESTCONTAINERS_RYUK_DISABLED>
<!-- Для CI с docker:dind service: указывает testcontainers
что spawned контейнеры доступны через `docker` hostname,
не localhost. Локально пусто → testcontainers default. -->
<TESTCONTAINERS_HOST_OVERRIDE>${env.TESTCONTAINERS_HOST_OVERRIDE}</TESTCONTAINERS_HOST_OVERRIDE>
</environmentVariables>
<systemPropertyVariables>
<api.version>1.45</api.version>
@@ -134,4 +144,26 @@
</plugin>
</plugins>
</build>
<profiles>
<profile>
<!-- Включает e2e тесты (Testcontainers). Запускать на CI runner с DinD
либо локально с Docker Desktop. -->
<id>e2e</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes combine.self="override"/>
<includes>
<include>**/e2e/*E2ETest.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>