Merge pull request 'Регрессия: web/ из git, без шага npm-ci (#181)' (#182) from feat/181-regress-web-from-git into main
This commit is contained in:
commit
b754799694
@ -122,7 +122,7 @@ docker compose -f ../docs/dev/docker-compose.yml --project-name arm-ka run --rm
|
|||||||
### Перед выкладкой: полная регрессия
|
### Перед выкладкой: полная регрессия
|
||||||
|
|
||||||
`make regress` в docs (`scripts/regression/regress.sh`) прогоняет всё перечисленное выше по `main` всех репозиториев
|
`make regress` в docs (`scripts/regression/regress.sh`) прогоняет всё перечисленное выше по `main` всех репозиториев
|
||||||
сразу, не останавливаясь на первой ошибке, плюс то, чего нет в `check-full`: фронт в чистой копии с `npm ci`, e2e ядра с
|
сразу, не останавливаясь на первой ошибке, плюс то, чего нет в `check-full`: фронт в чистой копии из git, e2e ядра с
|
||||||
настоящим парсером, стенд с нуля в отдельном compose-проекте со сценарием по API и контрольными цифрами, UI-смоук и
|
настоящим парсером, стенд с нуля в отдельном compose-проекте со сценарием по API и контрольными цифрами, UI-смоук и
|
||||||
прогон парсера по банку первички со сравнением с прошлым прогоном. Описание этапов и итога — `scripts/regression/README.md`.
|
прогон парсера по банку первички со сравнением с прошлым прогоном. Описание этапов и итога — `scripts/regression/README.md`.
|
||||||
|
|
||||||
|
|||||||
@ -25,7 +25,7 @@ preflight не пройден.
|
|||||||
| `preflight` | все репозитории (`docs`, `fixtures`, `arm-statements`, `arm-core`, `tabular-parser`, `scan-gateway`) на `main`, равны `origin/main`, без правок; Docker, `uv`, `npm`, `openspec`; нет чужих потребителей общей NATS (контейнеры сервисов `arm-ka`, ядро на `:8000`) — иначе интеграционные тесты и e2e падают по таймауту. Не пройден — прогон останавливается (`--allow-dirty` — прогнать как есть, с пометкой в итоге) |
|
| `preflight` | все репозитории (`docs`, `fixtures`, `arm-statements`, `arm-core`, `tabular-parser`, `scan-gateway`) на `main`, равны `origin/main`, без правок; Docker, `uv`, `npm`, `openspec`; нет чужих потребителей общей NATS (контейнеры сервисов `arm-ka`, ядро на `:8000`) — иначе интеграционные тесты и e2e падают по таймауту. Не пройден — прогон останавливается (`--allow-dirty` — прогнать как есть, с пометкой в итоге) |
|
||||||
| `venv` | `make venv` во всех репозиториях (окружения по текущим зависимостям) |
|
| `venv` | `make venv` во всех репозиториях (окружения по текущим зависимостям) |
|
||||||
| `static` | `make check` docs (контракты, OpenSpec, снимок контура, `sync-statements`), обзор свежести копий `arm_statements`, `lint` и `test` arm-statements и трёх сервисов, `dbml-check` ядра |
|
| `static` | `make check` docs (контракты, OpenSpec, снимок контура, `sync-statements`), обзор свежести копий `arm_statements`, `lint` и `test` arm-statements и трёх сервисов, `dbml-check` ядра |
|
||||||
| `web` | фронт `arm-core/web` в **чистой копии** во временном каталоге: `npm ci` (как пайплайн; при расхождении lock с `package.json` — красный, копия доустанавливается `npm install`), biome, `tsc`, ESLint + Prettier, vitest, сборка. `main` не меняется |
|
| `web` | фронт `arm-core/web` из git (`git archive HEAD:web`, неотслеживаемые файлы рабочего каталога не попадают) во временном каталоге: `npm install` без lock (lock в arm-core не коммитится, OQ-63 — как в контуре), biome, `tsc`, ESLint + Prettier, vitest, сборка. `main` не меняется |
|
||||||
| `integration` | инфраструктура общего compose-проекта `arm-ka` (`make up`), `check-infra`, `test-integration` трёх сервисов; у ядра — с циклом миграций `upgrade → downgrade base → upgrade`. Тесты создают свои БД, рабочую `armka` не трогают |
|
| `integration` | инфраструктура общего compose-проекта `arm-ka` (`make up`), `check-infra`, `test-integration` трёх сервисов; у ядра — с циклом миграций `upgrade → downgrade base → upgrade`. Тесты создают свои БД, рабочую `armka` не трогают |
|
||||||
| `fixtures` | реальные данные парсера: `test-fixtures` (golden, покрытие словарей) и `golden-check` tabular-parser |
|
| `fixtures` | реальные данные парсера: `test-fixtures` (golden, покрытие словарей) и `golden-check` tabular-parser |
|
||||||
| `images` | сборка образов `arm-core:dev`, `tabular-parser:dev`, `scan-gateway:dev` из `main` (профиль `services`) |
|
| `images` | сборка образов `arm-core:dev`, `tabular-parser:dev`, `scan-gateway:dev` из `main` (профиль `services`) |
|
||||||
@ -65,5 +65,5 @@ preflight не пройден.
|
|||||||
## Если шаг красный
|
## Если шаг красный
|
||||||
|
|
||||||
Сначала лог шага (`logs/<этап>.<шаг>.log`, путь — в `summary.md`). Частые причины не в коде: занятая NATS (preflight
|
Сначала лог шага (`logs/<этап>.<шаг>.log`, путь — в `summary.md`). Частые причины не в коде: занятая NATS (preflight
|
||||||
`shared-consumers`), не поднятая инфраструктура, сеть для `npm ci` / `uv`. Шаг можно перезапустить отдельно:
|
`shared-consumers`), не поднятая инфраструктура, сеть для `npm install` / `uv`. Шаг можно перезапустить отдельно:
|
||||||
`--only <этап> --out <тот же каталог>`.
|
`--only <этап> --out <тот же каталог>`.
|
||||||
|
|||||||
@ -138,17 +138,16 @@ st_static() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# --- фронт arm-core/web ----------------------------------------------------------------------------------------------
|
# --- фронт arm-core/web ----------------------------------------------------------------------------------------------
|
||||||
# В чистой копии web/ (без node_modules и dist) во временном каталоге, main не меняется (npm install в main переписывает
|
# Копия web/ из git (`git archive HEAD:web` — ровно то, что в коммите, без node_modules, dist и прочих неотслеживаемых
|
||||||
# package-lock.json, а node_modules main бывают собраны под другую ОС). Шаг npm-ci — воспроизводимость lock: красный,
|
# файлов) во временном каталоге; рабочий каталог main не меняется и не читается. web/package-lock.json в arm-core не
|
||||||
# если lock расходится с package.json. Остальные шаги идут на установке без lock (npm-install): lock собран на linux, и
|
# коммитится (OQ-63, dev/contour-transfer-guide.md §5): установка без lock, как в контуре; локальный lock рабочего
|
||||||
# по нему npm не ставит нативные пакеты другой ОС (biome, rspack, canvas — npm/cli#4828); так же ставит и контур, в
|
# каталога (устаревший, собранный под другую ОС) в копию не попадает — 28.10.2026 он дал ложный красный npm ci (docs#181).
|
||||||
# снимке lock нет (dev/contour-transfer-guide.md §3.2).
|
|
||||||
|
|
||||||
WEB_TMP="" STAND_UP=0
|
WEB_TMP="" STAND_UP=0
|
||||||
PLAYWRIGHT="${PLAYWRIGHT:-playwright==1.55.0}"
|
PLAYWRIGHT="${PLAYWRIGHT:-playwright==1.55.0}"
|
||||||
web_copy() {
|
web_copy() {
|
||||||
WEB_TMP=$(mktemp -d "${TMPDIR:-/tmp}/regress-web.XXXXXX")
|
WEB_TMP=$(mktemp -d "${TMPDIR:-/tmp}/regress-web.XXXXXX")
|
||||||
rsync -a --exclude node_modules --exclude dist "$WS/arm-core/web/" "$WEB_TMP/"
|
git -C "$WS/arm-core" archive HEAD:web | tar -x -C "$WEB_TMP"
|
||||||
echo "$WEB_TMP"
|
echo "$WEB_TMP"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +157,6 @@ st_web() {
|
|||||||
web_copy >/dev/null
|
web_copy >/dev/null
|
||||||
local w="$WEB_TMP"
|
local w="$WEB_TMP"
|
||||||
echo "$w" >"$OUT/web-tmp"
|
echo "$w" >"$OUT/web-tmp"
|
||||||
step web npm-ci npm --prefix "$w" ci --no-audit --no-fund --dry-run
|
|
||||||
step web npm-install web_install "$w"
|
step web npm-install web_install "$w"
|
||||||
step web biome sh -c "cd '$w' && npx biome check src"
|
step web biome sh -c "cd '$w' && npx biome check src"
|
||||||
step web tsc sh -c "cd '$w' && npx tsc --noEmit"
|
step web tsc sh -c "cd '$w' && npx tsc --noEmit"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user