ci(typecheck): полный lerna run build вместо --scope cooptypes+factory(+sdk)

Trial run #148 (PR #30) упал в job controller на 37 TS2307 «Cannot find
module» для @coopenomics/{sdk,inter,notifications}. Локально маскируется
тем, что controller стартует через ts-node, который резолвит .ts напрямую
через tsconfig-paths/pnpm-симлинки и не зависит от dist/. tsc же ищет
types из package.json целевого пакета — а оно показывает на dist/index.d.ts
из unbuild.

Замена локального scoped-build на полный `pnpm lerna run build` (как в
корневом Dockerfile builder-стадии) собирает граф целиком и устойчиво
к добавлению новых workspace-пакетов. Добавляет ~2-3 мин ко времени job'а,
end-to-end оценочно ~21 мин (был 18 на сломанной версии).
This commit is contained in:
2026-05-23 15:48:50 +05:00
parent e4a1a33a53
commit 69d0e223ed
+15 -11
View File
@@ -42,13 +42,15 @@ jobs:
- name: Install workspace
run: pnpm install --frozen-lockfile
# cooptypes/factory/sdk собираются здесь, потому что desktop
# импортирует типы из @coopenomics/sdk (zeus-генерация поверх
# controller GraphQL-схемы), а sdk в свою очередь зависит от
# cooptypes. Без `unbuild` dist/ пусто — vue-tsc упадёт на
# «Cannot find module '@coopenomics/sdk'».
- name: Build type dependencies (cooptypes → factory → sdk)
run: pnpm lerna run build --scope cooptypes --scope @coopenomics/factory --scope @coopenomics/sdk
# Полный lerna build по всему workspace — как в корневом Dockerfile.
# Не --scope, потому что workspace-пакеты unbuild-типа (sdk, inter,
# notifications, factory, cooptypes, …) экспортируют типы только из
# сгенерированного dist/. Без dist/ tsc/vue-tsc валятся на TS2307
# «Cannot find module». Локально это маскируется ts-node-ом, но в
# CI пути резолвятся через package.json → types → dist/.
# См. Graphiti / run #148 root cause 2026-05-23.
- name: Build all workspace packages
run: pnpm lerna run build
# quasar prepare генерирует .quasar/* (auto-imports d.ts, типы для
# quasar плагинов). Без него vue-tsc ругается на отсутствующие
@@ -83,10 +85,12 @@ jobs:
- name: Install workspace
run: pnpm install --frozen-lockfile
# controller импортирует cooptypes и factory. Без build dist/
# типы не резолвятся — TS2307 на каждом import.
- name: Build type dependencies (cooptypesfactory)
run: pnpm lerna run build --scope cooptypes --scope @coopenomics/factory
# Полный lerna build по всему workspace — controller импортирует
# @coopenomics/sdk, @coopenomics/inter, @coopenomics/notifications
# помимо cooptypes/factory; их dist/ генерируется unbuild и без
# этого шага tsc валится на 37 TS2307. См. root cause выше.
- name: Build all workspace packages
run: pnpm lerna run build
- name: tsc --noEmit (controller)
run: pnpm --filter @coopenomics/controller run typecheck