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

18
.woodpecker/check.yaml Normal file
View File

@@ -0,0 +1,18 @@
# Merge gate: тесты, линтеры и evidence.
# Выполняется на Woodpecker-агенте с local backend: нужны Java 21, Docker
# (Testcontainers), Docker Compose v2, Python 3 и bash.
when:
- event: [push, pull_request]
steps:
- name: check
image: bash
commands:
- ./scripts/ci-preflight.sh
- ./gradlew --no-daemon test ktlintCheck detekt evidenceCheck
# Один общий слот: smoke/release поднимают реальный стек на localhost,
# параллельный запуск занял бы порты 8080–8090.
concurrency:
limit: 1
group: lms-ci

16
.woodpecker/release.yaml Normal file
View File

@@ -0,0 +1,16 @@
# Полный release gate: тесты, миграции, mutation, runtime/scale и
# Chromium/Firefox/WebKit E2E. Запускается на тег или вручную.
when:
- event: [tag, manual]
steps:
- name: release
image: bash
commands:
- cd e2e && npm ci && cd ..
- ./scripts/ci-preflight.sh --release
- ./scripts/ldd-release.sh
concurrency:
limit: 1
group: lms-ci

18
.woodpecker/smoke.yaml Normal file
View File

@@ -0,0 +1,18 @@
# Дымовой тест на каждый push/MR: полный стек, health, вход админа,
# один доменный сценарий. Полный release gate — в release.yaml.
when:
- event: [push, pull_request]
depends_on:
- check
steps:
- name: smoke
image: bash
commands:
- ./scripts/ci-preflight.sh
- ./scripts/ldd-smoke.sh
concurrency:
limit: 1
group: lms-ci