diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ba21327..ad636ce 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -68,6 +68,34 @@ maven-test:
rules:
- changes: *backend-changes
+# Е2Е тесты через Testcontainers (Postgres+Kafka). Профиль `e2e` в
+# ordinis-app/pom.xml включает их (default surefire excludes e2e директорию).
+# Требует docker:dind service для testcontainers — обычный maven-test runner
+# не имеет Docker.
+maven-e2e:
+ stage: test
+ image: repo.nstart.cloud/library/maven:3.9.9-eclipse-temurin-21
+ services:
+ - name: repo.nstart.cloud/library/docker:29.1.2-dind
+ alias: docker
+ command: ["--tls=false"]
+ variables:
+ DOCKER_HOST: "tcp://docker:2375"
+ DOCKER_TLS_CERTDIR: ""
+ TESTCONTAINERS_HOST_OVERRIDE: "docker"
+ TESTCONTAINERS_RYUK_DISABLED: "true"
+ script:
+ - for i in $(seq 1 30); do docker -H tcp://docker:2375 info >/dev/null 2>&1 && break; sleep 1; done
+ - mvn $MAVEN_CLI_OPTS -pl ordinis-app -am -P e2e test
+ artifacts:
+ when: always
+ reports:
+ junit: '**/target/surefire-reports/TEST-*.xml'
+ expire_in: 1 week
+ rules:
+ - changes: *backend-changes
+ # Можно сделать allow_failure: true если e2e будут флакать — пока нет.
+
# ─── BUILD (Maven jars) ────────────────────────
# maven-package всегда запускается: docker backend jobs нуждаются в jar даже
# при frontend-only PR (иначе backend образы не пересобрать → ImagePullBackOff
diff --git a/ordinis-app/pom.xml b/ordinis-app/pom.xml
index 657e6a4..2b5d1a0 100644
--- a/ordinis-app/pom.xml
+++ b/ordinis-app/pom.xml
@@ -119,6 +119,12 @@
org.apache.maven.plugins
maven-surefire-plugin
+
+
+ **/e2e/*E2ETest.java
+
@@ -126,6 +132,10 @@
${env.DOCKER_HOST}
1.45
true
+
+ ${env.TESTCONTAINERS_HOST_OVERRIDE}
1.45
@@ -134,4 +144,26 @@
+
+
+
+
+ e2e
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+
+ **/e2e/*E2ETest.java
+
+
+
+
+
+
+