ci: изолировать пайплайны на отдельной VM

- Woodpecker workflows требуют агент с меткой isolation=dedicated-vm
- шаги выполняются в lms-ci:1 с nested dockerd, без хост-Docker сокета
- ci/Dockerfile: прогретый immutable-образ (Java, Python, Node, Gradle-кэш)
- ci-dind.sh поднимает dockerd внутри privileged-шага; ci-build-image.sh собирает образ
- deploy/WOODPECKER.md: отдельная VM, firewall, отсутствие production-секретов,
  trusted repo, чек-лист безопасности
This commit is contained in:
2026-10-28 22:50:23 +03:00
parent 685916c4bd
commit f3d614bb33
15 changed files with 287 additions and 137 deletions

View File

@@ -71,6 +71,7 @@ progress `:8083`, web `:8090`. Интерфейс: `http://localhost:8090`.
./scripts/ldd-browser.sh # Playwright E2E: Chromium/Firefox/WebKit
./scripts/ldd-release.sh # полный release gate: test/upgrade/mutation/runtime/E2E
./scripts/ci-preflight.sh --release # проверка окружения runner без установки
./scripts/ci-build-image.sh # прогретый CI-образ lms-ci:1 для Woodpecker
./scripts/legacy-assets.sh # инвентаризация бесхозных файлов на стенде (admin)
```
@@ -88,8 +89,8 @@ progress `:8083`, web `:8090`. Интерфейс: `http://localhost:8090`.
workflow `check` (`test ktlintCheck detekt evidenceCheck`) и `smoke`
(`scripts/ldd-smoke.sh`) на каждом push/MR; полный `release` —
`scripts/ldd-release.sh` — на тег или вручную. Smoke/release идут на
Woodpecker-агенте с local backend: Java 21, Docker Compose v2, Python 3,
Node и Chromium/Firefox/WebKit. Установка —
отдельной CI VM: Woodpecker Docker backend, nested dind, Java 21,
Docker Compose v2, Python 3, Node и Chromium/Firefox/WebKit. Установка —
[`deploy/WOODPECKER.md`](deploy/WOODPECKER.md).
Baseline: **51 claim, 346 тестов, 18/18 browser E2E**.