Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Deploy de um monorepo fora da Vercel

Primeiramente parabéns pelo curso, vocês arrebentaram. :)

Gostaria de abordar o deploy de um monorepo com projetos em Next.js fora da Vercel. No caso da Vercel é tudo muito simples e intuitivo, mas existem algumas limitações de números de projetos que podemos linkar a um repositório e os valores dos planos pagos ainda não estão acessíveis a mim.

Gostaria de hospedar o meu projeto em outro ambiente de nuvem. Neste caso eu teria que configurar os builds de cada pasta do repositório no processo de pipeline de CI?

Muito obrigado

1 resposta
solução!

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.

  1. 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.

  2. 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.

  1. 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.

  2. 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.