ci: перевести merge gate на Gitea + Woodpecker

- .woodpecker/check.yaml, smoke.yaml, release.yaml
- local-backend агент: Java 21, Docker Compose v2, Python 3, Node/Playwright
- concurrency lms-ci, чтобы smoke/release не занимали порты одновременно
- deploy/WOODPECKER.md: server, OAuth Gitea, systemd-агент, security note
- удалён .gitlab-ci.yml
This commit is contained in:
2026-10-28 20:11:14 +03:00
parent 1e1e9ae0e4
commit 685916c4bd
13 changed files with 310 additions and 161 deletions

View File

@@ -14,7 +14,7 @@
блокирует сборку.
- **runtime** — проверка на реально поднятом стеке. Быстрый smoke
(`scripts/ldd-smoke.sh`) выполняется в CI на каждом push/MR; полный
runtime/scale — в `release-evidence` и обязателен перед релизом.
runtime/scale — в workflow `release` и обязателен перед релизом.
## Реестр
@@ -40,7 +40,7 @@
# 2. Гейт свидетельств (P0 без evidence = fail)
./gradlew evidenceCheck
# 3. Быстрый smoke полного стека (то же, что CI job smoke)
# 3. Быстрый smoke полного стека (то же, что workflow smoke)
./scripts/ldd-smoke.sh
# 4. Полный runtime-smoke + scale load на одноразовой БД
@@ -101,9 +101,9 @@ LDD-циклы выполнены 2026-10-27/28; последний — посл
все зелёные;
- масштабный load: 100 групп / 1000 студентов, 125 параллельных чтений,
0 ошибок, p95 < 1 с (порог p95 < 2 с);
- CI: job `smoke` (`ldd-smoke.sh`) на каждом push/MR; полный
`release-evidence` (`ldd-release.sh`) обязателен для тегов и ручной для
веток.
- CI: Gitea + Woodpecker, workflow `smoke` (`ldd-smoke.sh`) на каждом push/MR;
полный `release` (`ldd-release.sh`) обязателен для тегов и ручной для веток.
Установка — `deploy/WOODPECKER.md`.
В ходе E2E найден и исправлен реальный дефект: Jackson 3 не применял
Kotlin-модуль, поэтому DTO с default-значениями требовали все поля JSON