ci(deploy): Forgejo Actions deploy to Vercel + drop Dependabot #3

Closed
opened 2026-08-07 12:59:38 +03:00 by slaid098 · 0 comments
Owner

Контекст

Vercel нативно интегрируется только с GitHub/GitLab/Bitbucket — для Forgejo авто-деплой по push не работает. После переноса source-of-truth на Forgejo нужен механизм деплоя на Vercel. VERCEL_TOKEN уже доступен. CI сейчас в .github/workflows/ci.yml (GitHub Actions-синтаксис, валиден для Forgejo Actions). Dependabot .github/dependabot.yml — GitHub-only, Forgejo не поддерживает; 7 dependabot-PR умерли вместе с забаненным аккаунтом.

Задача

  1. Деплой: Forgejo Actions workflow на push в mainvercel deploy --prod --token=$VERCEL_TOKEN. VERCEL_TOKEN в секреты Forgejo (не в коде, не в env-файлах репо). Опционально — триггер по тегу для production, по push для preview.
  2. CI: проверить, что Forgejo Actions runner зарегистрирован для slaid098-dev (инфра в forgejo-infra). .github/workflows/ci.yml валиден для Forgejo Actions — либо оставить как есть, либо перенести в .forgejo/workflows/ci.yml для нативности. runs-on: ubuntu-latest → проверить, что runner это поддерживает (Forgejo runner может требовать docker:linux или свой label).
  3. Dependabot: удалить .github/dependabot.yml. Зависимости — руками или завести Renovate позже (отдельная задача).
  4. Vercel env: убедиться, что FORGEJO_URL, FORGEJO_TOKEN, WEBHOOK_SECRET прописаны в Vercel project env (через Vercel CLI или API с VERCEL_TOKEN).
  5. Webhook в Forgejo: создать webhook на slaid098.dev/api/webhook (тип Gitea, секрет = WEBHOOK_SECRET) — либо через API, либо документировать ручной шаг.

Контракты

  • Push в main на Forgejo → CI (lint/typecheck/test/build) → vercel deploy --prod → сайт обновляется.
  • VERCEL_TOKEN хранится в секретах Forgejo, не в репозитории.

Инварианты

  • VERCEL_TOKEN не попадает в коммиты, логи, env-файлы репо.
  • CI остаётся quality-gate'ом: деплой только при зелёном CI.
  • Vercel env (production) не дублируется в коммитах — single source в Vercel dashboard/CLI.

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

  • Forgejo Actions недоступен / runner не зарегистрирован → fallback: ручной vercel deploy --prod (документировать как emergency-процедуру).
  • vercel deploy падает (rate limit, ошибка сборки) → CI красный, PR/пуш не деплоится, видно в логах Forgejo Actions.
  • VERCEL_TOKEN истёк → регенерация через Vercel + обновление секрета в Forgejo.

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

  • .github/workflows/ci.yml — добавить job deploy (или отдельный workflow).
  • .github/dependabot.yml — удалить.
  • Vercel project env — новые переменные (FORGEJO_URL/FORGEJO_TOKEN/WEBHOOK_SECRET).
  • Forgejo repo settings — секрет VERGEJO_TOKEN, webhook.
  • docs/ — новый ADR про деплой через Forgejo Actions.

Вне scope

  • Self-host Next.js (альтернатива отвергнута — Vercel остаётся).
  • Зеркало на GitLab для Vercel-интеграции (лишний хост).
  • Renovate (отдельная задача).

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

  • Push в main на Forgejo триггерит CI и деплой на Vercel — сайт slaid098.dev обновляется без ручных шагов.
  • CI зелёный на мёрдж-кандидатах (lint/typecheck/test/build).
  • .github/dependabot.yml удалён.
  • VERCEL_TOKEN не светится в коде/коммитах/логах.
## Контекст Vercel нативно интегрируется только с GitHub/GitLab/Bitbucket — для Forgejo авто-деплой по push не работает. После переноса source-of-truth на Forgejo нужен механизм деплоя на Vercel. `VERCEL_TOKEN` уже доступен. CI сейчас в `.github/workflows/ci.yml` (GitHub Actions-синтаксис, валиден для Forgejo Actions). Dependabot `.github/dependabot.yml` — GitHub-only, Forgejo не поддерживает; 7 dependabot-PR умерли вместе с забаненным аккаунтом. ## Задача 1. **Деплой**: Forgejo Actions workflow на push в `main` → `vercel deploy --prod --token=$VERCEL_TOKEN`. `VERCEL_TOKEN` в секреты Forgejo (не в коде, не в env-файлах репо). Опционально — триггер по тегу для production, по push для preview. 2. **CI**: проверить, что Forgejo Actions runner зарегистрирован для `slaid098-dev` (инфра в `forgejo-infra`). `.github/workflows/ci.yml` валиден для Forgejo Actions — либо оставить как есть, либо перенести в `.forgejo/workflows/ci.yml` для нативности. `runs-on: ubuntu-latest` → проверить, что runner это поддерживает (Forgejo runner может требовать `docker:linux` или свой label). 3. **Dependabot**: удалить `.github/dependabot.yml`. Зависимости — руками или завести Renovate позже (отдельная задача). 4. **Vercel env**: убедиться, что `FORGEJO_URL`, `FORGEJO_TOKEN`, `WEBHOOK_SECRET` прописаны в Vercel project env (через Vercel CLI или API с `VERCEL_TOKEN`). 5. **Webhook в Forgejo**: создать webhook на `slaid098.dev/api/webhook` (тип Gitea, секрет = `WEBHOOK_SECRET`) — либо через API, либо документировать ручной шаг. ## Контракты - Push в `main` на Forgejo → CI (lint/typecheck/test/build) → `vercel deploy --prod` → сайт обновляется. - `VERCEL_TOKEN` хранится в секретах Forgejo, не в репозитории. ## Инварианты - `VERCEL_TOKEN` не попадает в коммиты, логи, env-файлы репо. - CI остаётся quality-gate'ом: деплой только при зелёном CI. - Vercel env (production) не дублируется в коммитах — single source в Vercel dashboard/CLI. ## Граничные случаи - Forgejo Actions недоступен / runner не зарегистрирован → fallback: ручной `vercel deploy --prod` (документировать как emergency-процедуру). - `vercel deploy` падает (rate limit, ошибка сборки) → CI красный, PR/пуш не деплоится, видно в логах Forgejo Actions. - `VERCEL_TOKEN` истёк → регенерация через Vercel + обновление секрета в Forgejo. ## Влияние на связанные компоненты - `.github/workflows/ci.yml` — добавить job `deploy` (или отдельный workflow). - `.github/dependabot.yml` — удалить. - Vercel project env — новые переменные (FORGEJO_URL/FORGEJO_TOKEN/WEBHOOK_SECRET). - Forgejo repo settings — секрет `VERGEJO_TOKEN`, webhook. - `docs/` — новый ADR про деплой через Forgejo Actions. ## Вне scope - Self-host Next.js (альтернатива отвергнута — Vercel остаётся). - Зеркало на GitLab для Vercel-интеграции (лишний хост). - Renovate (отдельная задача). ## Критерии приемки - Push в `main` на Forgejo триггерит CI и деплой на Vercel — сайт `slaid098.dev` обновляется без ручных шагов. - CI зелёный на мёрдж-кандидатах (lint/typecheck/test/build). - `.github/dependabot.yml` удалён. - `VERCEL_TOKEN` не светится в коде/коммитах/логах.
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#3
No description provided.