fix(deploy): set cache-dependency-path to package-lock.json (same bug as #13) #17

Closed
opened 2026-08-07 18:11:06 +03:00 by slaid098 · 0 comments
Owner

Контекст

После влития PR #16 (fix ci.yml cache bug, issue #13) обнаружено: deploy.yml имеет ту же проблему — actions/setup-node@v4 с cache: "npm" без cache-dependency-path. На push после merge PR #16 (sha=2f1cc05) deploy.yml упал:

❌  Failure - Main actions/setup-node@v4
lstat /root/.cache/act/.../eslint.config.mjs: no such file or directory
🏁  Job failed
Job 'deploy' failed

Тот же root cause, что issue #13: act-эмуляция setup-node@v4 ищет eslint.config.mjs (нет, проект на Biome) при cache miss. ci.yml починен в PR #16 (cache-dependency-path: "package-lock.json"), deploy.yml — нет.

Блокер: сайт не обновляется (deploy не работает). PR #15 (subscriptions content) влит, но не в проде — deploy run id=136 failure.

Задача

  1. Добавить cache-dependency-path: "package-lock.json" к actions/setup-node@v4 в .forgejo/workflows/deploy.yml (строка 18).
  2. Проверить: push на main → deploy.yml run → status=success (деплой работает).

Контракты

  • deploy.yml остаётся в .forgejo/workflows/.
  • Триггер push на main — не меняется.
  • Steps: checkout → setup-node → npm ci → npm run build → vercel deploy — не меняются (только параметр cache-dependency-path).
  • secrets.VERCEL_TOKEN, secrets.FORGEJO_URL, secrets.FORGEJO_TOKEN, secrets.WEBHOOK_SECRET — не трогаются.

Инварианты

  • Деплой на Vercel работает через CLI (npx vercel deploy --prod --yes --token=...).
  • npm run build в deploy — production build (тот же, что в ci.yml).
  • Vercel git-provider link отключен (PR #6), CLI-deploy без git author verification.

Граничные случаи

  • После фикса первый push будет cold cache (cache save, не restore). Последующие — cache restore, быстро.
  • Если cache-dependency-path не сработает на deploy (act bug) — fallback: убрать cache: "npm" (медленнее, но 100% надёжно).

Влияние на связанные компоненты

  • .forgejo/workflows/deploy.yml — единственное изменение.
  • .forgejo/workflows/ci.yml — НЕ трогается (починен в PR #16).
  • pipeline-status — после фикса deploy.yml на push = success.
  • Сайт slaid098.dev — обновится (PR #15 content в проде).

Вне scope

  • ci.yml (починен в PR #16).
  • Разделение deploy на build + deploy jobs (будущий enhancement).
  • Vercel CLI версия (npx vercel — последняя, ОК).

Критерии приемки

  • cache-dependency-path: "package-lock.json" добавлен в deploy.yml.
  • Push на main → deploy.yml run → status=success (деплой работает).
  • Логи: Cache restored from key: node-cache-linux-x64-npm-<hash> или Cache saved.
  • Сайт slaid098.dev обновлён (PR #15 content виден в проде).
## Контекст После влития PR #16 (fix ci.yml cache bug, issue #13) обнаружено: `deploy.yml` имеет ту же проблему — `actions/setup-node@v4` с `cache: "npm"` без `cache-dependency-path`. На push после merge PR #16 (sha=2f1cc05) deploy.yml упал: ``` ❌ Failure - Main actions/setup-node@v4 lstat /root/.cache/act/.../eslint.config.mjs: no such file or directory 🏁 Job failed Job 'deploy' failed ``` Тот же root cause, что issue #13: `act`-эмуляция `setup-node@v4` ищет `eslint.config.mjs` (нет, проект на Biome) при cache miss. ci.yml починен в PR #16 (`cache-dependency-path: "package-lock.json"`), deploy.yml — нет. **Блокер**: сайт не обновляется (deploy не работает). PR #15 (subscriptions content) влит, но не в проде — deploy run id=136 failure. ## Задача 1. Добавить `cache-dependency-path: "package-lock.json"` к `actions/setup-node@v4` в `.forgejo/workflows/deploy.yml` (строка 18). 2. Проверить: push на main → deploy.yml run → status=success (деплой работает). ## Контракты - deploy.yml остаётся в `.forgejo/workflows/`. - Триггер `push` на `main` — не меняется. - Steps: checkout → setup-node → npm ci → npm run build → vercel deploy — не меняются (только параметр `cache-dependency-path`). - `secrets.VERCEL_TOKEN`, `secrets.FORGEJO_URL`, `secrets.FORGEJO_TOKEN`, `secrets.WEBHOOK_SECRET` — не трогаются. ## Инварианты - Деплой на Vercel работает через CLI (`npx vercel deploy --prod --yes --token=...`). - `npm run build` в deploy — production build (тот же, что в ci.yml). - Vercel git-provider link отключен (PR #6), CLI-deploy без git author verification. ## Граничные случаи - После фикса первый push будет cold cache (cache save, не restore). Последующие — cache restore, быстро. - Если `cache-dependency-path` не сработает на deploy (act bug) — fallback: убрать `cache: "npm"` (медленнее, но 100% надёжно). ## Влияние на связанные компоненты - `.forgejo/workflows/deploy.yml` — единственное изменение. - `.forgejo/workflows/ci.yml` — НЕ трогается (починен в PR #16). - `pipeline-status` — после фикса deploy.yml на push = success. - Сайт slaid098.dev — обновится (PR #15 content в проде). ## Вне scope - ci.yml (починен в PR #16). - Разделение deploy на build + deploy jobs (будущий enhancement). - Vercel CLI версия (npx vercel — последняя, ОК). ## Критерии приемки - `cache-dependency-path: "package-lock.json"` добавлен в deploy.yml. - Push на main → deploy.yml run → status=success (деплой работает). - Логи: `Cache restored from key: node-cache-linux-x64-npm-<hash>` или `Cache saved`. - Сайт slaid098.dev обновлён (PR #15 content виден в проде).
Sign in to join this conversation.
No labels
bug
performance
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
slaid098/slaid098-dev#17
No description provided.