From 18378c2713dcc6052301a10a63925d06a17a0598 Mon Sep 17 00:00:00 2001 From: claude-bot Date: Sat, 6 Jun 2026 10:22:01 +0000 Subject: [PATCH] docs(ORCH-042): add deploy log (deploy_status: SUCCESS) Co-Authored-By: Claude Opus 4.7 --- docs/work-items/ORCH-042/14-deploy-log.md | 82 +++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs/work-items/ORCH-042/14-deploy-log.md diff --git a/docs/work-items/ORCH-042/14-deploy-log.md b/docs/work-items/ORCH-042/14-deploy-log.md new file mode 100644 index 0000000..f24fa29 --- /dev/null +++ b/docs/work-items/ORCH-042/14-deploy-log.md @@ -0,0 +1,82 @@ +--- +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).