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

@@ -190,8 +190,9 @@ legacy-активов на production, сдачи по выбранной лаб
push/MR выполняет workflow `check` (`test ktlintCheck detekt evidenceCheck`)
и `smoke` (`scripts/ldd-smoke.sh`: полный стек, health, вход админа, один
курс). Полный `release` обязателен для тегов и запускается вручную для
веток. Агент — local backend с Java 21, Docker Compose v2, Python 3, Node и
Chromium/Firefox/WebKit; установка — [`deploy/WOODPECKER.md`](../deploy/WOODPECKER.md).
веток. Агент — Docker backend на отдельной VM, шаги в nested dind; Java 21,
Docker Compose v2, Python 3, Node и Chromium/Firefox/WebKit; установка —
[`deploy/WOODPECKER.md`](../deploy/WOODPECKER.md).
- [ ] Заданы сроки сессии: `LMS_ACCESS_TOKEN_TTL=15m`,
`LMS_REFRESH_TOKEN_TTL=7d`, `LMS_SESSION_TIMEOUT=7d`,
`LMS_SESSION_ABSOLUTE_TIMEOUT=30d`, `LMS_REFRESH_TOKEN_RETENTION=30d`
@@ -323,10 +324,10 @@ legacy-активов на production, сдачи по выбранной лаб
1. **Прогнать инвентаризацию legacy-активов на production/staging** через
`/admin/legacy-assets` или `scripts/legacy-assets.sh`, привязать нужные
файлы к статьям, остальные удалить.
2. **Развернуть Woodpecker и проверить CI.** Поднять server и local-backend
агент по [`deploy/WOODPECKER.md`](../deploy/WOODPECKER.md), включить
репозиторий, дождаться зелёных `check`/`smoke` на push-MR и `release` на
теге.
2. **Развернуть Woodpecker и проверить CI.** Поднять server и Docker-backend
агент на отдельной VM по [`deploy/WOODPECKER.md`](../deploy/WOODPECKER.md),
включить репозиторий, дождаться зелёных `check`/`smoke` на push-MR и
`release` на теге.
3. **Дальнейшее расширение E2E** — визуальная регрессия и остальные мобильные
страницы, если UI продолжит расти.
4. **Пакетные сдачи ведомости**, если появятся курсы, где открытие ведомости