Skip to content

Deploy

Este guia cobre todos os procedimentos de deploy do Neemias: Worker (backend), Cloudflare Pages (frontend + docs), migrações D1 e CI/CD automatizado.

Visão geral

CamadaPlataformaComando
Backend (Worker)Cloudflare Workerspnpm deploy:worker
Frontend (SPA)Cloudflare Pagespnpm build:app && wrangler pages deploy app/dist
Docs (VitePress)Cloudflare Pagespnpm deploy:docs
Database (D1)Cloudflare D1pnpm db:migrate:local / db:migrate:remote

Deploy rápido (script único)

O script scripts/deploy.sh automatiza o fluxo completo — testes, build e deploy:

bash
./scripts/deploy.sh          # dev (padrão)
./scripts/deploy.sh staging  # staging
./scripts/deploy.sh prod     # produção

O script executa:

  1. pnpm -r test — todos os testes do monorepo
  2. DEPLOY_ENV=$ENV pnpm build:app — build do frontend
  3. npx wrangler deploy — deploy do Worker
  4. npx wrangler pages deploy app/dist — deploy do frontend

Deploy do Worker

bash
pnpm deploy:worker

Este comando invoca o wrangler deploy para publicar o Worker no Cloudflare. O Worker fica disponível no domínio configurado no wrangler.toml.

Deploy da documentação

bash
pnpm deploy:docs

O script scripts/deploy-docs.sh:

  1. Executa pnpm docs:build para gerar o build VitePress com OpenAPI + TypeDoc
  2. Publica docs/.vitepress/dist via wrangler pages deploy --project-name neemias-docs

Migrações D1

As migrações do banco de dados D1 são gerenciadas com Wrangler:

ComandoDescrição
pnpm db:migrate:localAplica migrações no D1 local (--local)
pnpm db:migrate:remoteAplica migrações no D1 remoto (produção)

As migrações ficam no diretório migrations/ e são aplicadas sequencialmente. Certifique-se de testar as migrações localmente antes de executar no ambiente remoto.

Seed de dados

O seed popula o banco com dados de demonstração (500 alunos, 7 turmas, 20 núcleos, 4 slots de turma, 8 semanas de presença). Não executa em produção.

bash
pnpm db:seed

A guarda de seed (__DEPLOY_ENV__) impede a execução quando VITE_DEPLOY_ENV=prod. Veja Environments para detalhes sobre a matriz de ambientes.

CI/CD (GitHub Actions)

O deploy automatizado é disparado por tags de versão no padrão v* (ex.: v1.0.0, v0.26.0). O workflow:

  1. Executa pnpm -r test — suite completa de testes
  2. Executa pnpm docs:build — build da documentação
  3. Faz deploy do Worker (pnpm deploy:worker)
  4. Faz deploy do frontend no Cloudflare Pages
  5. Faz deploy da documentação no Cloudflare Pages

Para disparar um deploy, crie e envie uma tag:

bash
git tag v1.0.0
git push origin v1.0.0

Ambientes

O Neemias utiliza três ambientes controlados pela variável VITE_DEPLOY_ENV:

AmbienteVITE_DEPLOY_ENVSeedURL
Devdevneemias.app
Stagingstagingstaging.neemias.app
Produçãoprodapp.neemias.app

Consulte Environments para configuração detalhada dos ambientes, secrets do Cloudflare Pages e fluxo de dados.


Fonte: README.md, scripts/deploy-docs.sh

Distribuído sob licença MIT.