[2026-09-26] eagle: family/how-to/truenas-infrastructure.md personal/plans/balda-mm-pr-plan.md personal/projects/balda/balda-mattermost-connector.md personal/projects/balda/balda-mm-delegation-plan.md personal/tech/balda-go-fx-pitfalls.md
This commit is contained in:
1 parent
036e7a7091
commit
1bf8320446
5 files changed
+318
-57
No files matched your search
@@ -1223,6 +1223,51 @@ git rm -r --cached tools/ # 🔴 файлы ОСТАЮТСЯ на диске
|
||||
⚠️ Артефакты деплоя (`mm-*.sh` ops-скрипты) в PR не шлём — только код транспорта,
|
||||
wiring, тесты, доки.
|
||||
|
||||
## 🔴 Целевой репозиторий определять через API, не по имени remote'а
|
||||
|
||||
Два remote'а выглядели так: `origin` = `mallexxx/balda` (форк), `upstream` = `normahq/balda`.
|
||||
Но **реальный родитель форка — `baldaworks/balda`**, а `normahq/balda` — просто редирект:
|
||||
|
||||
```bash
|
||||
gh repo view mallexxx/balda --json parent
|
||||
# → parent: baldaworks/balda
|
||||
|
||||
gh repo view normahq/balda --json owner
|
||||
# → owner.id: O_kgDOEgAHrw ← тот же org, что у baldaworks/balda = редирект, не отдельный репо
|
||||
```
|
||||
|
||||
📌 Создавать PR в **`baldaworks/balda`**, а `--head` указывать как `mallexxx:<branch>`
|
||||
(«владелец:ветка»). Полный URL форка в `--head` ломает `gh`.
|
||||
|
||||
```bash
|
||||
gh pr create --repo baldaworks/balda --base main \
|
||||
--head mallexxx:feat/mattermost-channel \
|
||||
--title "…" --body-file /tmp/pr-body.md
|
||||
```
|
||||
|
||||
⚠️ **Проверять базу перед пушем:** `git rev-list --left-right --count upstream/main...HEAD`
|
||||
→ `0 7` значит «0 позади, 7 впереди» — идеальная база, rebase не нужен.
|
||||
|
||||
## 🔴 CI на чистом раннере — это НАСТОЯЩАЯ приёмка сборки (шире локальных гейтов)
|
||||
|
||||
Локально `cmd/balda` падал на
|
||||
`TestInitCommand_NonInteractiveAutoSelectsRootAndGeneratesDetectedAgents`.
|
||||
В CI (чистый раннер, свой образ) **тот же тест прошёл**.
|
||||
|
||||
Локальные гейты (`build`/`vet`/`golangci-lint`/`go-arch-lint`/`go test`) — **необходимое,
|
||||
но не достаточное** условие. Они видят состояние **моей** машины: остатки кэшей, локальные
|
||||
конфиги, переменные окружения, версии инструментов. CI видит чистое дерево.
|
||||
|
||||
**Пайплайн в `baldaworks/balda` (8 джобов):**
|
||||
`architecture-lint`, `lint`, `test`, `ingress-e2e`, `jetstream-integration`,
|
||||
`postgres-integration`, `sqlite-integration`, `projection-replay`.
|
||||
|
||||
📌 **Порядок:** локальные гейты → push → **дождаться CI** → только потом говорить
|
||||
«готово». Не объявлять готовность по локальным гейтам, если в репо есть CI.
|
||||
|
||||
⚠️ Локальный фейл, которого нет в CI, — **не повод чинить код**: сначала проверить, не
|
||||
особенность ли это локальной среды (`git stash` + повтор, или прогон в контейнере).
|
||||
|
||||
## Связанные заметки
|
||||
|
||||
- [[personal/projects/balda/balda-mattermost-connector]] — Фаза 2, где всё это найдено
|
||||
|
||||
Reference in new issue
Block a user