auto-sync: 2026-06-05 10:50:01
This commit is contained in:
@@ -307,3 +307,44 @@
|
||||
4. Ни одного «молчаливого» деплоя (каждый → Plane + Telegram)
|
||||
5. Период ≥10 деплоев ИЛИ ≥2 недели без инцидентов
|
||||
Связи: ORCH-7/21/34/35. Ждёт когда вернёмся.
|
||||
|
||||
|
||||
---
|
||||
|
||||
## ORCH-35 ДОРАБОТКА — условный staging-гейт (Вариант А) ✅ проверено лично (05.06 ~07:40 UTC)
|
||||
|
||||
### Решение Славы: Вариант А — условный гейт
|
||||
Гейт `deploy-staging` срабатывает реально ТОЛЬКО для self-hosting (проект orchestrator). Для остальных проектов (enduro-trails и пр.) — мгновенный зелёный pass, чтобы их задачи НЕ застряли на откате.
|
||||
|
||||
### Что сделал Dev (коммит `e0c14fa` в той же ветке `feature/ORCH-35-staging-gate`)
|
||||
- `src/qg/checks.py:451-455` — `SELF_HOSTING_REPO = "orchestrator"` + `is_self_hosting_repo(repo)` (case-insensitive)
|
||||
- `check_staging_status`: если repo НЕ self-hosting → сразу `(True, "Staging gate N/A for <repo>")`, файл `15-staging-log.md` даже не читается. Если orchestrator → реальная проверка как было.
|
||||
- `STAGE_TRANSITIONS` НЕ трогали — стадия остаётся в цепочке для всех, условность зашита в QG.
|
||||
- `tests/test_qg.py` — +7 новых тестов под условную логику
|
||||
|
||||
### Проверено МНОЙ лично на проде (прод-образ орка + примонтированы исходники ветки)
|
||||
- **319 passed, 0 failed** (было 312, +7 новых)
|
||||
- Условность вживую (через `docker cp` файла в контейнер, НЕ `-v` mount — volume-mount файла НЕ подхватывается, урок!):
|
||||
- `check_staging_status("enduro-trails", ...)` → (True, "Staging gate N/A...") БЕЗ файла ✓
|
||||
- `check_staging_status("orchestrator", ...)` без файла → (False) ✓, с `staging_status: SUCCESS` → (True) ✓
|
||||
- repo приходит как plain gitea name (`ProjectConfig.repo` из реестра `projects.py`) — подтверждено, сравнение корректное
|
||||
- Доработка тронула только `qg/checks.py` + `tests/test_qg.py`. git diff ветки показывает 6 файлов — это НАКОПЛЕННЫЙ diff всей ветки против main (первый коммит e0b6e92 + доработка e0c14fa), сама доработка stages.py НЕ меняла.
|
||||
|
||||
### projects.py (разведано, реестр проектов из ORCH-6 фикса 02.06)
|
||||
Связывает Plane-проект uuid ↔ Gitea-репо ↔ префикс. `ProjectConfig` (frozen): plane_project_id, repo, work_item_prefix, name. Источник: env `ORCH_PROJECTS_JSON` → settings.projects_json, fallback `_DEFAULT_PROJECTS` (enduro-trails ET первый намеренно, orchestrator ORCH). Парсер устойчив (битый элемент скип, пусто→дефолт). Отсюда берётся способ отличить self-hosting (repo=="orchestrator").
|
||||
|
||||
### СТАТУС: ✅ СМЕРЖЕНО И ЗАКРЫТО (05.06 ~07:43 UTC)
|
||||
- PR `#31` СМЕРЖЕН (merge commit `f1b3146`, merged=True/closed). main HEAD = `f1b3146`, под ним `e0c14fa` + `e0b6e92`.
|
||||
- ORCH-35 переведён Backlog→Done напрямую (HTTP 200, state `3738cd3c`). Мимо In Progress — webhook не дёрнут.
|
||||
- ORCH-35 id `4ead9be7-e1bf-4a28-8c76-88bda1c1fc2c`
|
||||
|
||||
### 🏁 СЕРИЯ САМОДЕПЛОЯ — ФИНАЛ
|
||||
Все 5 этапов готовы и проверены лично:
|
||||
- Этап 1 ORCH-31 ✅ Done (PR #28)
|
||||
- Этап 2 ORCH-32 ✅ Done (песочница staging 8501)
|
||||
- Этап 3 ORCH-33 ✅ Done (PR #29, staging_check.py)
|
||||
- Этап 4 ORCH-34 ✅ Done (PR #30, deploy-hook.sh + авто-rollback)
|
||||
- Этап 5 ORCH-35 ✅ DONE (PR #31 смержен `f1b3146`, условный staging-гейт, 319 тестов)
|
||||
- Вариант B вынесен в ORCH-36 (Backlog) — исполняемый деплой, на потом
|
||||
|
||||
🏁🏁🏁 СЕРИЯ САМОДЕПЛОЯ ПОЛНОСТЬЮ ЗАВЕРШЕНА 05.06.2026. Орк имеет staging-предохранитель: прод-деплой недостижим, пока staging-гейт не зелёный (для self-hosting). Следующий шаг когда вернёмся — ORCH-36 (исполняемый деплой) с 5 метриками доверия.
|
||||
|
||||
Reference in New Issue
Block a user