fix(ci): remove npm cache from setup-node to fix push trigger failure #13
Labels
No labels
bug
performance
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
slaid098/slaid098-dev#13
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Контекст
После переноса
ci.ymlв.forgejo/workflows/(PR #12, issue #10) триггерpull_requestвосстановлен — CI запускается на PR. Однако наpush(merge в main) ci.yml падает на шагеactions/setup-node@v4сcache: "npm":setup-node@v4сcache: "npm"ищетeslint.config.mjs(дефолтный cache-dependency-path для npm-cache) — которого нет в проекте (используется Biome, не ESLint). Наpull_request(run id=127) cache успешно restored (ключnode-cache-linux-x64-npm-...), наpush(run id=128) — падает наlstat. Нестабильность кэшаactrunner (Forgejo используетactдля эмуляции GitHub Actions).Задача
cache: "npm"изactions/setup-node@v4в.forgejo/workflows/ci.yml— кэш npm не критичен,npm cideterministic поpackage-lock.jsonи достаточно быстр (~10-15с на CI runner).cache-dependency-path: "package-lock.json"явно —setup-nodeбудет искатьpackage-lock.jsonвместоeslint.config.mjsдля валидации cache-key.Контракты
.forgejo/workflows/(issue #10 фикс сохранён).pull_request+pushнаmain— не меняются.cacheу setup-node).runs-on: ubuntu-latest,node-version: "22"— сохраняются.Инварианты
npm run buildв CI — единственный детектор клиент/серверных границ. Без CI-билда такие баги проходят (локальные lint/typecheck/test/knip НЕ ловят).pipeline-statusoracle использует presence CI checks для вердикта. Если ci.yml падает на push —pipeline-statusпосле merge покажет CI failure (не блокирует merge, но сигнал регрессии).Граничные случаи
eslint.config.mjs— если cache-key уже валиден в runner. На push — падает. Поведение nondeterministic.cache: "npm"—npm ciвсегда выполняется полностью (нет cache restore). Замедление ~10-15с на каждом run. Приемлемо для CI.cache-dependency-path: "package-lock.json"— если кэш runner поддерживает этот путь, сохранит кэширование. Ноactможет иметь баги с custom dependency-path. Тестировать.Влияние на связанные компоненты
.forgejo/workflows/ci.yml— единственное изменение..forgejo/workflows/deploy.yml— НЕ трогается (deploy работает, run id=129 success).pipeline-status— после фикса ci.yml на push = success, oracle покажет CI ✅ после merge (не failure).run-pipelineskill — после фикса CI-фаза полностью детерминированная (pull_request + push оба зелёные).Вне scope
uv/pnpm(проект на npm,package-lock.json).act(инфра-решение, отдельная задача).Критерии приемки
cache: "npm"убран изactions/setup-node@v4(илиcache-dependency-path: "package-lock.json"добавлен)./actions/runs, event=push).pipeline-statusпосле merge нового PR → CI ✅ на push (не failure)./actions/jobs/{id}/logs— нетlstat eslint.config.mjsошибки.