Este repositório está configurado para fazer deploy automático na Vercel sempre que houver um push para as branches main ou master.
O workflow do GitHub Actions executará as seguintes etapas:
- Checkout do código
- Configuração do Node.js
- Instalação de dependências
- Execução do linting
- Build do projeto
- Deploy na Vercel (produção para branch main/master, preview para outras branches)
Para que o CI/CD funcione corretamente, você precisa adicionar as seguintes secrets no seu repositório do GitHub:
VERCEL_TOKEN: Token de acesso da API da VercelVERCEL_ORG_ID: ID da sua organização na VercelVERCEL_PROJECT_ID: ID do seu projeto na Vercel
-
VERCEL_TOKEN:
- Acesse Vercel Tokens
- Clique em "Create" para gerar um novo token
- Copie o token gerado (ele só será exibido uma vez)
-
VERCEL_ORG_ID e VERCEL_PROJECT_ID:
- Instale a CLI da Vercel:
npm i -g vercel - Execute
vercel logine faça login na sua conta - Navegue até o diretório do seu projeto
- Execute
vercel linkpara vincular seu projeto local ao projeto da Vercel - Abra o arquivo
.vercel/project.jsoncriado no seu projeto - Você encontrará os valores de
orgIdeprojectIdnesse arquivo
- Instale a CLI da Vercel:
- Acesse seu repositório no GitHub
- Vá para "Settings" > "Secrets and variables" > "Actions"
- Clique em "New repository secret"
- Adicione cada uma das secrets mencionadas acima com seus respectivos valores
- Pushes para
mainoumaster: Deploy de produção - Pull Requests: Deploy de preview
O workflow está configurado para lidar com conflitos de dependências entre o React 18 e bibliotecas que possam requerer versões diferentes (como o @react-three/fiber que pode exigir React 19).
As seguintes soluções foram implementadas:
- Uso da flag
--legacy-peer-depsdurante a instalação - Aplicação de overrides no package.json para garantir compatibilidade com React 18
- Configuração otimizada para garantir builds consistentes em ambiente CI/CD
Para resolver erros relacionados ao módulo "critters" durante o build, foram implementadas as seguintes soluções:
- O pacote
crittersfoi adicionado como dependência de desenvolvimento - A otimização CSS foi desativada no
next.config.mjspara evitar problemas durante o build - O arquivo
vercel.jsonfoi configurado para instalar explicitamente o pacote durante o deploy
Para resolver problemas de memória durante o build, foi implementada a seguinte solução:
- Configuração
NODE_OPTIONS='--max_old_space_size=4096'adicionada ao comando de build
Foram adicionados vários arquivos para garantir um deploy consistente:
.nvmrc: Especifica a versão exata do Node.js (18.18.0).npmrc: Configurações do npm para garantir instalação consistente de dependênciasvercel.json: Configurações personalizadas para o deploy na Vercel