Oi Paulo, tudo bem? Agradeço pelo seu feedback positivo sobre o curso, fico feliz em saber que você está aproveitando o conteúdo!
Sobre o deploy de um monorepo com projetos em Next.js fora da Vercel, realmente a plataforma oferece uma solução simples e intuitiva. No entanto, se você deseja hospedar seu projeto em outro ambiente de nuvem, é necessário configurar os builds de cada pasta do repositório no processo de pipeline de CI (Integração Contínua).
O processo de configuração pode variar dependendo da plataforma de CI que você está utilizando. Geralmente, você precisa definir os passos necessários para construir e implantar cada projeto do monorepo.
Uma opção popular para CI é o Travis CI. Vou fornecer um exemplo básico de como você pode configurar o build e o deploy usando o Travis CI e o Heroku como exemplo de ambiente de nuvem. Tenha em mente que existem várias ferramentas e serviços disponíveis, e você pode escolher aqueles que melhor atendam às suas necessidades.
Comece criando um arquivo chamado .travis.yml
na raiz do seu repositório. Este arquivo é responsável por configurar o processo de CI no Travis.
No arquivo .travis.yml
, você precisa definir as etapas de build e deploy para cada projeto do monorepo. Aqui está um exemplo básico para dois projetos chamados "projeto-a" e "projeto-b":
language: node_js
node_js:
- 14
jobs:
include:
- name: Build and deploy projeto-a
script:
- cd projeto-a
- yarn install
- yarn build
deploy:
provider: heroku
app: projeto-a
api_key: $HEROKU_API_KEY
- name: Build and deploy projeto-b
script:
- cd projeto-b
- yarn install
- yarn build
deploy:
provider: heroku
app: projeto-b
api_key: $HEROKU_API_KEY
Neste exemplo, definimos dois jobs, um para cada projeto. Cada job possui um script que define os comandos necessários para construir o projeto e, em seguida, o deploy é realizado no Heroku.
Agora você precisa configurar as variáveis de ambiente necessárias no Travis CI. No exemplo acima, estamos usando a variável $HEROKU_API_KEY
para autenticar com o Heroku. Você pode configurar essa variável no painel de controle do Travis CI para o seu repositório.
Assim que você configurar o arquivo .travis.yml
e as variáveis de ambiente, o Travis CI começará a construir e implantar seus projetos do monorepo sempre que houver uma alteração no repositório.
Lembre-se de adaptar esse exemplo de acordo com as necessidades do seu projeto e as ferramentas que você está utilizando. Existem outras opções populares de plataformas de CI, como Jenkins, CircleCI e GitLab CI/CD, que também podem ser usadas para configurar o pipeline de CI.
É importante ressaltar que, ao hospedar seu projeto fora da Vercel, você precisará configurar manualmente a infraestrutura necessária para executar seu aplicativo, como servidores, balanceadores de carga e bancos de dados, dependendo dos requisitos do seu projeto.
Espero ter ajudado.
Um abraço e bons estudos.