From c3237dfb645b66eb0cfcb01aafacb08db377f616 Mon Sep 17 00:00:00 2001 From: Esdras Renan Date: Tue, 4 Nov 2025 22:52:46 -0300 Subject: [PATCH] Adopt Bun runtime across build pipelines --- .github/workflows/ci-cd-web-desktop.yml | 5 ++++- .github/workflows/quality-checks.yml | 10 +++++++++- README.md | 17 +++++++++++++++-- convex/_generated/api.d.ts | 4 ++-- docs/DEV.md | 10 +++++++--- package.json | 8 +++++++- 6 files changed, 44 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci-cd-web-desktop.yml b/.github/workflows/ci-cd-web-desktop.yml index 6351f88..77c3e98 100644 --- a/.github/workflows/ci-cd-web-desktop.yml +++ b/.github/workflows/ci-cd-web-desktop.yml @@ -80,6 +80,9 @@ jobs: node-version: 20 cache: 'pnpm' + - name: Verify Bun runtime + run: bun --version + - name: Permissions diagnostic (server paths) run: | set +e @@ -189,7 +192,7 @@ jobs: corepack enable || true pnpm --filter web install --no-frozen-lockfile pnpm prisma:generate - pnpm build + pnpm build:bun - name: Publish build to stable APP_DIR directory run: | diff --git a/.github/workflows/quality-checks.yml b/.github/workflows/quality-checks.yml index 4fa4f33..1cead9e 100644 --- a/.github/workflows/quality-checks.yml +++ b/.github/workflows/quality-checks.yml @@ -33,6 +33,14 @@ jobs: node-version: 20 cache: pnpm + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.3.1 + + - name: Verify Bun + run: bun --version + - name: Install dependencies run: pnpm install --frozen-lockfile @@ -55,4 +63,4 @@ jobs: run: pnpm test - name: Build - run: pnpm build + run: pnpm build:bun diff --git a/README.md b/README.md index faad514..434f9ea 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ Aplicação **Next.js 16 (App Router)** com **React 19**, **Convex** e **Better - Node.js >= 20 - pnpm >= 9 (habilite via `corepack prepare pnpm@9 --activate`) +- (Opcional) Bun >= 1.3 para usar o runtime/test runner do Bun (`bun run --bun ...`). Após instalar via script oficial, adicione `export PATH="$HOME/.bun/bin:$PATH"` ao seu shell (ex.: `.bashrc`) para ter `bun` disponível globalmente. - CLI do Convex (`pnpm dlx convex dev` instalará automaticamente no primeiro uso) ## Configuração rápida @@ -32,12 +33,14 @@ Aplicação **Next.js 16 (App Router)** com **React 19**, **Convex** e **Better ``` 6. Em um terminal, execute o backend em tempo real do Convex: ```bash - pnpm convex:dev + pnpm convex:dev:bun ``` + > Alternativa: `pnpm convex:dev` (runtime Node) caso queira manter o comportamento anterior. 7. Em outro terminal, suba o frontend Next.js (Turbopack): ```bash - pnpm dev + pnpm dev:bun ``` + > Fallback: `pnpm dev` (Node) ou `pnpm dev:webpack` caso o Turbopack acione alguma incompatibilidade. 8. Com o Convex ativo, acesse `http://localhost:3000/dev/seed` uma vez para popular dados de demonstração (tickets, usuários, comentários) diretamente no banco do Convex. > Se o CLI perguntar sobre configuração do projeto Convex, escolha criar um novo deployment local (opção padrão) e confirme. As credenciais são armazenadas em `.convex/` automaticamente. @@ -61,6 +64,10 @@ Para fluxos detalhados de desenvolvimento — banco de dados local (SQLite/Prism ## Scripts úteis +- `pnpm dev:bun` — padrão atual para o Next.js com runtime Bun (`pnpm dev` usa Node como fallback). +- `pnpm convex:dev:bun` — runtime Bun para o Convex (`pnpm convex:dev` mantém o fluxo antigo). +- `pnpm build:bun` / `pnpm start:bun` — build e serve com Bun; use `pnpm build`/`pnpm start` se quiser ficar no Node. +- `pnpm dev:webpack` / `pnpm build:webpack` — fallback oficial caso Turbopack apresente problemas. - `pnpm lint` — ESLint com as regras do projeto. - `pnpm test` — suíte de testes unitários (Vitest) em modo não interativo. - `pnpm build` — `next build --turbopack` com otimizações para produção. @@ -96,6 +103,12 @@ Após executar `pnpm auth:seed`, as credenciais padrão ficam disponíveis confo Consulte `PROXIMOS_PASSOS.md` para acompanhar o backlog funcional e o progresso das iniciativas planejadas. +### Executar com Bun + +- `pnpm dev:bun`, `pnpm convex:dev:bun`, `pnpm build:bun` e `pnpm start:bun` já estão configurados; internamente executam `bun run --bun