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 + + + + + + +