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

@@ -150,8 +150,9 @@ workflow `check` (`./gradlew --no-daemon test ktlintCheck detekt evidenceCheck`)
курс). Полный workflow `release` (`./scripts/ldd-release.sh`) обязателен для
тегов и запускается вручную для веток. Smoke/release начинаются с
`scripts/ci-preflight.sh`, который проверяет Java 21, Docker Compose v2,
Python 3, Node и Playwright. Агент — local backend на хосте с Docker:
установка и systemd-юнит — [`WOODPECKER.md`](WOODPECKER.md).
Python 3, Node и Playwright. Агент — Docker backend на отдельной CI VM,
шаги — в nested dind без хост-Docker сокета; установка и модель изоляции —
[`WOODPECKER.md`](WOODPECKER.md).
## 8. Резервное копирование