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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user