fix(tradein/deploy): scraper+backend paths-filter — matching/dedup/scraper-kit trigger rebuilds (#2188) #2199

Merged
lekss361 merged 1 commit from fix/tradein-deploy-scraper-paths-filter into main 2026-07-02 19:04:21 +00:00
Owner

Summary

Closes #2188. Два пробела paths-filter в deploy-tradein.yml, оба словлены живьём 2026-07-02:

  1. scraper-фильтр не включал app/services/matching/** и house_dedup_merge.py — а scheduler исполняет этот код на каждом scrape-тике. Факт: fias-dedup из PR #2185 доехал до tradein-backend, но tradein-scraper остался на старом образе (проверялось _FIAS_KEY_EXPR в source контейнеров); DORMANT-расписание дедупа исполнило бы старый код без cross-fias guard.
  2. backend-фильтр не включал tradein-mvp/packages/scraper-kit/** — kit вкомпилирован в backend-образ и уже импортируется рантаймом (scheduler_main, strangler #2192 ship-dark). Kit-only изменение не пересобрало бы образ → деплой рестартовал бы контейнеры на старом коде. После USE_KIT_SCHEDULER=true kit-код и есть scheduler — добавлен и в scraper-фильтр.

Сделано ДО переключения strangler-флага — фикс защищает саму миграцию scraper-kit.

Трейдофф «не SIGKILL'ить многочасовые джобы» осознанно сужается: правки matching/dedup/kit достаточно редки и достаточно важны, чтобы рекреация была обязательной (как уже происходит для scrapers/**).

Test plan

  • YAML валиден (yaml.safe_load)
  • Файл сам в infra-фильтре → merge этого PR прогонит полный test+deploy цикл
  • Пост-merge проверка: деплой пересоздал tradein-scraper (файл workflow в infra; следующая правка matching/** должна дать scraper=true)
## Summary Closes #2188. Два пробела paths-filter в `deploy-tradein.yml`, оба словлены живьём 2026-07-02: 1. **`scraper`-фильтр** не включал `app/services/matching/**` и `house_dedup_merge.py` — а scheduler исполняет этот код на каждом scrape-тике. Факт: fias-dedup из PR #2185 доехал до `tradein-backend`, но `tradein-scraper` остался на старом образе (проверялось `_FIAS_KEY_EXPR` в source контейнеров); DORMANT-расписание дедупа исполнило бы старый код без cross-fias guard. 2. **`backend`-фильтр** не включал `tradein-mvp/packages/scraper-kit/**` — kit вкомпилирован в backend-образ и уже импортируется рантаймом (`scheduler_main`, strangler #2192 ship-dark). Kit-only изменение не пересобрало бы образ → деплой рестартовал бы контейнеры на старом коде. После `USE_KIT_SCHEDULER=true` kit-код и есть scheduler — добавлен и в `scraper`-фильтр. Сделано ДО переключения strangler-флага — фикс защищает саму миграцию scraper-kit. Трейдофф «не SIGKILL'ить многочасовые джобы» осознанно сужается: правки matching/dedup/kit достаточно редки и достаточно важны, чтобы рекреация была обязательной (как уже происходит для `scrapers/**`). ## Test plan - [x] YAML валиден (`yaml.safe_load`) - [x] Файл сам в `infra`-фильтре → merge этого PR прогонит полный test+deploy цикл - [ ] Пост-merge проверка: деплой пересоздал `tradein-scraper` (файл workflow в infra; следующая правка `matching/**` должна дать `scraper=true`)
lekss361 added 1 commit 2026-07-02 19:03:39 +00:00
fix(tradein/deploy): scraper+backend paths-filter — matching/dedup/scraper-kit trigger rebuilds (#2188)
All checks were successful
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
8fd2be97e4
lekss361 merged commit d8ea4f2fd7 into main 2026-07-02 19:04:21 +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#2199
No description provided.