Files
LMS/.gitlab-ci.yml
Vladislav Kopnin 1e1e9ae0e4 feat: закрыть остаточный backlog
- keyset-пагинация аудита с курсором (occurred_at, id) и UI «Показать ещё»
- пакетный /api/v1/labs/details и переход progress на один запрос
- абсолютный потолок сессии 30 дней (identity V12 + web), очистка refresh
- админская инвентаризация legacy-активов (/admin/legacy-assets, скрипт)
- E2E в Chromium/Firefox/WebKit (18/18), CI preflight
- LDD: 51 claim, 346 тестов, docs и handoff обновлены
2026-10-29 12:01:44 +03:00

88 lines
2.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Единый merge gate: тесты, ktlint и detekt.
# Testcontainers поднимает PostgreSQL 18 через Docker-in-Docker, поэтому runner
# должен разрешать privileged-сервисы (docker:dind) и сеть до docker:2375.
stages:
- check
- smoke
- release-evidence
variables:
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
GRADLE_USER_HOME: "$CI_PROJECT_DIR/.gradle"
DOCKER_HOST: "tcp://docker:2375"
DOCKER_TLS_CERTDIR: ""
TESTCONTAINERS_HOST_OVERRIDE: "docker"
check:
stage: check
image: eclipse-temurin:21-jdk
services:
- name: docker:27-dind
alias: docker
cache:
key: "gradle-$CI_COMMIT_REF_SLUG"
paths:
- .gradle/caches
- .gradle/wrapper
script:
- ./gradlew --no-daemon test ktlintCheck detekt evidenceCheck
artifacts:
when: always
paths:
- build/reports/evidence/index.md
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH'
# Дымовой тест на каждый push/MR: полный стек на одноразовой БД, health,
# вход и один доменный сценарий. Полный release gate — ниже.
smoke:
stage: smoke
# Shell-runner: скрипт поднимает реальный стек на localhost и проверяет его.
# На runner нужны Java 21, Docker Compose v2, Python 3 и bash.
tags: [lms-shell]
before_script:
- ./scripts/ci-preflight.sh
cache:
key: "gradle-$CI_COMMIT_REF_SLUG"
paths:
- .gradle/caches
- .gradle/wrapper
script:
- ./scripts/ldd-smoke.sh
artifacts:
when: always
paths:
- build/evidence/smoke.json
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH'
# Ручной release gate: runtime, mutation и browser evidence.
# Нужен privileged docker:dind; Chromium/Firefox/WebKit и Node ставятся в before_script.
release-evidence:
stage: release-evidence
# Shell-runner с Java 21, Docker Compose v2, Node 22, браузерами Playwright.
tags: [lms-release]
before_script:
- cd e2e && npm ci && cd ..
- ./scripts/ci-preflight.sh --release
- cd e2e && npx playwright install --with-deps chromium firefox webkit && cd ..
cache:
key: "gradle-$CI_COMMIT_REF_SLUG"
paths:
- .gradle/caches
- .gradle/wrapper
script:
- ./scripts/ldd-release.sh
artifacts:
when: always
paths:
- build/evidence/
- build/reports/evidence/
rules:
- if: '$CI_COMMIT_TAG'
when: on_success
- if: '$CI_COMMIT_BRANCH'
when: manual