Files
orchestrator/docs/work-items/ORCH-042/14-deploy-log.md
2026-06-06 10:22:01 +00:00

83 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
deploy_status: SUCCESS
timestamp: 2026-06-06T10:20:38Z
work_item: ORCH-042
branch: feature/ORCH-042-telegram-live-tracker-bump
commit: 753eea37fc9b0b7bffd9f896ae8149f5a515fc26
target_service: orchestrator
target_port: 8500
deploy_mode: artifact-only
staging_gate: SUCCESS
prod_container_restarted: false
rebuild_required: true
---
# Deploy Log — ORCH-042
## Verdict
**`deploy_status: SUCCESS`** — артефактный (artifact-only) деплой-вердикт.
Реальный `git pull` + `docker compose ... --build` + рестарт прод-контейнера
`orchestrator` (8500) в рамках этой стадии **НЕ выполняется**. Он делегирован
хуку `scripts/orchestrator-deploy-hook.sh` (ORCH-36), который запускается
Владельцем **после** мерджа ветки `feature/ORCH-042-telegram-live-tracker-bump`
в `main`. Guardrail: агент никогда не перезапускает общий прод-инстанс внутри
ORCH-задачи — это self-hosting групповой риск (CLAUDE.md / INFRA.md
§Self-hosting): рестарт прод-орка остановил бы конвейер ВСЕХ проектов.
## Pre-conditions (все ✓)
| Артефакт | Поле | Значение |
|----------|------|----------|
| `12-review.md` | `verdict` | `APPROVED` |
| `13-test-report.md` | `result` | `PASS` |
| `15-staging-log.md` | `staging_status` | `SUCCESS` (10/10 staging-checks, прогон внутри `orchestrator-staging` :8501) |
| `04-test-plan.yaml` | — | покрывает AC задачи |
| ADR | `06-adr/ADR-001-tracker-bump-mode.md` | заведён |
| `CHANGELOG.md` | — | обновлён |
Стадия `deploy` достижима только потому, что условный staging-гейт
(`check_staging_status`, реальный для self-hosting repo=orchestrator) — зелёный.
## Change scope — почему нужен rebuild+restart (но не сейчас)
ORCH-042 меняет **рантайм-код `src/`**, который копируется в образ (`/app/src`)
и исполняется прод-процессом — значит для вступления в силу на проде нужен
rebuild + restart контейнера:
| Файл | Тип | Как доезжает до прода |
|------|-----|------------------------|
| `src/notifications.py` | runtime (в образе) | требует **rebuild + restart** контейнера |
| `src/config.py` | runtime (в образе) | требует **rebuild + restart** контейнера |
| `.env.example` | дескриптор | реальные значения — в `.env` на хосте (не в гит) |
| `docs/**`, `CHANGELOG.md` | docs | мерж в `main` |
| `tests/**` | тесты, не деплоятся | n/a |
`rebuild_required: true`. Изменения добавляют режим **bump** live-tracker'а
Telegram (карточка перемещается вниз при обновлении) + русификацию текста
уведомлений; они активируются новыми env-флагами (см. `.env.example`).
Чтобы новое поведение вступило в силу на проде, прод-инстанс `orchestrator`
(8500) должен быть **пересобран и перезапущен Владельцем через деплой-хук
после мерджа** — не данным агентом.
## Deploy-хук (выполняет Владелец после мерджа в main)
```bash
# на хосте mva154, прод-таргет (порт 8500, profile отсутствует → default)
TARGET_SERVICE=orchestrator \
TARGET_PORT=8500 \
TARGET_IMAGE=orchestrator-orchestrator \
COMPOSE_PROFILE= \
scripts/orchestrator-deploy-hook.sh --deploy
```
Хук: снимает снапшот текущего образа → `git pull origin main` → перезапуск
сервиса → health-check (10×6s, до 60s по `GET /health`) → при провале
**авто-rollback** на предыдущий образ. Прод-env-флаги bump-режима выставляются
в `.env` на хосте до перезапуска.
> ⚠️ Self-hosting: rebuild прод-орка = групповой риск (общая БД + очередь с
> enduro-trails). Деплой проводить в окно низкой активности конвейера;
> страховка — авто-rollback хука и зелёный staging-гейт (8501).