ci(tradein): pre-merge гейт — backend pytest + frontend type-check/lint (#2208) #2220

Merged
lekss361 merged 1 commit from chore/tradein-premerge-ci into main 2026-07-02 19:56:23 +00:00
Owner

Summary

  • Новый .forgejo/workflows/ci-tradein.yml: pull_request-гейт для tradein-mvp — backend pytest (blocking) + frontend tsc --noEmit + next lint (blocking). Paths-filter: tradein-mvp/backend/**, tradein-mvp/packages/**, workspace uv.lock/pyproject.toml → pytest; tradein-mvp/frontend/** → type-check/lint. Раньше tradein-PR мержились на пусто-зелёных чеках (ci.yml фильтрует только главный стек).
  • Убран устаревший --deselect test_cian_valuation::test_cache_hit_returns_cached в обоих workflow — тест проходит в полном прогоне. Остаётся один deselect (test_search_cache_hit, 401 в whole-suite ordering, pre-existing).
  • pytest-timeout>=2.3.0 + timeout = 120 в pyproject (страховка от зависших тестов; действует и на pre-merge гейт, и на deploy test-job).
  • uv sync --frozen в обоих test-job: workspace-лок tradein-mvp/uv.lock tracked (комменты про «gitignored lock» устарели с воркспейса #2137), зеркалит Dockerfile.
  • ESLint flat config для tradein-frontend (без конфига next lint уходит в интерактивный prompt и падает в CI) + @eslint/eslintrc в devDeps + 2 lint-фикса (').

Как проверено

  • Локальный полный pytest: 2947 passed, 6 skipped, 1 deselected (timeout активен), uv sync --frozen ok.
  • npm run type-check exit 0; npm run lint exit 0 (warnings only).
  • code-reviewer: APPROVE (minor про paths-filter uv.lock — учтён в этом же PR).
  • Гейт self-validating: этот PR сам триггерит оба новых job'а (paths затронуты).

Refs #2208

## Summary - Новый `.forgejo/workflows/ci-tradein.yml`: pull_request-гейт для tradein-mvp — backend pytest (blocking) + frontend `tsc --noEmit` + `next lint` (blocking). Paths-filter: `tradein-mvp/backend/**`, `tradein-mvp/packages/**`, workspace `uv.lock`/`pyproject.toml` → pytest; `tradein-mvp/frontend/**` → type-check/lint. Раньше tradein-PR мержились на пусто-зелёных чеках (ci.yml фильтрует только главный стек). - Убран устаревший `--deselect` `test_cian_valuation::test_cache_hit_returns_cached` в обоих workflow — тест проходит в полном прогоне. Остаётся один deselect (`test_search_cache_hit`, 401 в whole-suite ordering, pre-existing). - `pytest-timeout>=2.3.0` + `timeout = 120` в pyproject (страховка от зависших тестов; действует и на pre-merge гейт, и на deploy test-job). - `uv sync --frozen` в обоих test-job: workspace-лок `tradein-mvp/uv.lock` tracked (комменты про «gitignored lock» устарели с воркспейса #2137), зеркалит Dockerfile. - ESLint flat config для tradein-frontend (без конфига `next lint` уходит в интерактивный prompt и падает в CI) + `@eslint/eslintrc` в devDeps + 2 lint-фикса (`'`). ## Как проверено - Локальный полный pytest: **2947 passed, 6 skipped, 1 deselected** (timeout активен), `uv sync --frozen` ok. - `npm run type-check` exit 0; `npm run lint` exit 0 (warnings only). - code-reviewer: ✅ APPROVE (minor про paths-filter uv.lock — учтён в этом же PR). - Гейт self-validating: этот PR сам триггерит оба новых job'а (paths затронуты). Refs #2208
lekss361 added 1 commit 2026-07-02 19:48:46 +00:00
ci(tradein): pre-merge гейт — backend pytest + frontend type-check/lint (#2208)
All checks were successful
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 1m12s
CI Trade-In / backend-tests (pull_request) Successful in 1m43s
CI Trade-In / changes (pull_request) Successful in 10s
CI / changes (pull_request) Successful in 9s
CI / openapi-codegen-check (pull_request) Has been skipped
5bcb7ab909
Тradein-PR мержились на пусто-зелёных чеках: ci.yml фильтрует только
backend/**+frontend/** главного стека, а pytest tradein жил лишь в
post-merge deploy-tradein.yml. Новый ci-tradein.yml гейтит pull_request
до мержа; deploy test-job синхронизирован.

- уборка устаревшего deselect: test_cian_valuation::test_cache_hit_returns_cached
  проходит в полном прогоне (2947 passed); остаётся только test_search_cache_hit
- pytest-timeout=120 per-test (страховка от зависших тестов в CI)
- uv sync --frozen в обоих test-job (workspace-лок tracked, зеркало Dockerfile)
- eslint flat config для tradein-frontend (гейт lint был невозможен: next lint
  без конфига уходит в интерактивный prompt и падает в CI)
- 2 apostrophe lint-фикса в scrapers/page.tsx

Refs #2208
lekss361 merged commit e6000cb029 into main 2026-07-02 19:56:23 +00:00
lekss361 deleted branch chore/tradein-premerge-ci 2026-07-02 19:56:23 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2220
No description provided.