Build здесь → push docker.stostayer.ru/vehicles-loader:0.4.0 → на хосте клиента pull + re-tag :latest=0.4.0 (0.3.0 retained для rollback). Acceptance #1 закрыт. Verify journalctl ждёт natural-прогона Sun 2026-05-31 06:21 MSK (user выбрал natural-окно, без baseline-reset). Open Q #1 снят: a74ef73 уже в origin/master. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
80 lines
5.9 KiB
Markdown
80 lines
5.9 KiB
Markdown
# vehicles-loader-progress-deploy
|
||
|
||
## Goal
|
||
|
||
Доставить `@stostayer/vehicles-loader` **0.4.0** (прогресс-логирование) на прод клиента и
|
||
верифицировать, что `journalctl` во время боевого `sync` показывает движение, а не ~2ч тишины.
|
||
|
||
Код-сайд готов: progress-logging зашипан в `stostayer.new` master (commit `a74ef73`, bump
|
||
0.3.0 → 0.4.0, 24/24 теста зелёные). Это чисто ops-handoff: rebuild образа на той же
|
||
схеме, что и 0.3.0 (build здесь → push в registry клиента `docker.stostayer.ru` → host
|
||
pull + re-tag), затем дождаться/прогнать sync и снять лог.
|
||
|
||
Закрывает единственный не-верифицированный acceptance-критерий исходной таски
|
||
`stostayer.new/.tasks/vehicles-loader-progress-logging.md` — «journalctl показывает движение»
|
||
(остальные 4/5 покрыты unit-тестами; этот по природе требует живого прод-прогона).
|
||
|
||
## Что нового в 0.4.0 (что должно появиться в логе)
|
||
|
||
- Фазовые строки: `▶ <phase> — start` / `✓ <phase> — done: N rows, <dur>` для
|
||
branches / vehicles / units / delete-sweep.
|
||
- Батч-прогресс: ` manufacturers: 18/183 (12s)`, ` units: 5/26 (…)` — авто-шаг ≈ total/10.
|
||
- delete-sweep per-model: ` delete-sweep <model>: N disabled` / `0 — выгрузка полная` /
|
||
`skip (пустой seen-set)`.
|
||
|
||
## Pending ops actions
|
||
|
||
- [x] **Build & push** на dev-машине из корня `stostayer.new` (2026-05-30): образ
|
||
`docker.stostayer.ru/vehicles-loader:0.4.0` собран (811MB, digest
|
||
`sha256:f2e10b1f090ba47f9b5de83b84f91c5ce827ecaf1e94bc0331f2d6773f85845a`),
|
||
`docker login` BA-кредами → `docker push` (общие слои с 0.3.0, докинуты только app-слои).
|
||
verdaccio-депы из `.yarn/cache` запеклись при build.
|
||
- [x] **На хосте клиента** (ssh `victor@new.stostayer.ru:20435`, docker через `sudo -S`):
|
||
`docker pull …:0.4.0` (digest совпал) + `docker tag …:0.4.0 vehicles-loader:latest`.
|
||
`:latest` теперь `0f8a4dd46236` = 0.4.0; 0.3.0 (`5407c0563e44`) оставлен под rollback.
|
||
- [ ] Дождаться планового прогона — **systemd timer next trigger `Sun 2026-05-31 06:21:36 MSK`**
|
||
(timer `enabled`, `active (waiting)`). Verify-окно выбрано user'ом = natural 06:20
|
||
(не форсим baseline-reset — клиент не получает внепланового email). На unchanged будет
|
||
`skipped-unchanged`; 1С перезапишет файл в 6:00 → 06:21 прогон на changed-выгрузке.
|
||
- [ ] **Live-verify (СЛЕДУЮЩАЯ СЕССИЯ после 06:21 MSK 31.05):**
|
||
`journalctl -u vehicles-loader.service --since '2026-05-31 06:00'` — видны
|
||
`▶ … start`, периодический батч-прогресс, `✓ … done`, per-model delete-sweep.
|
||
|
||
## Acceptance criteria
|
||
|
||
- Образ `docker.stostayer.ru/vehicles-loader:0.4.0` собран здесь и доступен на хосте клиента,
|
||
`:latest` указывает на 0.4.0.
|
||
- В `journalctl -u vehicles-loader.service` боевого прогона видно движение по фазам +
|
||
батч-прогресс + per-model delete-sweep counts (не тишина после трёх `Total …`).
|
||
- Данные залились корректно (`importRun` новый `ok`-ряд), email-отчёт ушёл (попутно
|
||
закрывает остаток «живой email-SEND в составе sync» из `vehicles-loader-image-distribution`).
|
||
|
||
## Decisions log
|
||
|
||
- 2026-05-30: **build+push+host-deploy выполнены.** Образ 0.4.0 собран здесь, запушен в
|
||
`docker.stostayer.ru`, на хосте pull + re-tag `:latest` → 0.4.0. 0.3.0 retained для rollback.
|
||
- 2026-05-30: open question #1 (push кода) снят — `a74ef73` оказался **уже в origin/master**
|
||
(`git branch -r --contains a74ef73` → origin/master), дерево чистое. Билдил из чистого дерева,
|
||
Rule-4-вопроса нет.
|
||
- 2026-05-30: open question #2 (verify-окно) решён user'ом = **ждём natural 06:20** (Sun 31.05),
|
||
НЕ форсим baseline-reset. Причина: форс = внеплановое email-письмо клиенту + спурьёзный
|
||
ре-импорт; natural-прогон и так = боевой acceptance. Trade-off: verify unattended, в след. сессии.
|
||
- 2026-05-30: заведено из `stostayer.new` session по явному указанию (закрыть код-таску
|
||
by-inspection, live-verify вынести в .admin как deploy-follow-up).
|
||
|
||
## Open questions
|
||
|
||
- [x] ~~Push `stostayer.new` master нужен до build?~~ — нет, `a74ef73` уже в origin/master.
|
||
- [x] ~~Где взять changed-выгрузку?~~ — ждём natural 06:21 Sun 31.05 (1С перезапишет файл в 6:00).
|
||
|
||
## Notes
|
||
|
||
- Схема деплоя 0.3.0 + обе инфра-гочи (IPv4 DB host; custom `/etc/hosts` для mail-DNS) —
|
||
`stostayer.new/.wiki/concepts/client-infra-access.md` + `vehicles-loader-docker-deploy.md`.
|
||
- Источник: `stostayer.new/.tasks/vehicles-loader-progress-logging.md` (🟢 closed by-inspection),
|
||
commit `a74ef73`.
|
||
- Предшественник: `.admin vehicles-loader-image-distribution` (🟢 closed 2026-05-29) — канал
|
||
поставки + первый боевой прогон 0.3.0.
|
||
|
||
<!-- created-by: vitya@stostayer.new-session / 2026-05-30 / handoff: stostayer.new/.tasks/vehicles-loader-progress-logging.md -->
|