Tenho meu site construído em React hospedado na Umbler há cerca de uns 15 dias. Tudo funcionava normalmente até ontem a noite, quando fiz um push na minha master branch e o deploy não funcionou. Já fiz restart do serviço 3 vezes e o erro persiste: continua na fase de build do react. Já tentei na minha local e não tive problema com o build. Segue print de como fica nos logs do sistema:
Acredito que uma solução então seria então mover o script que builda pra dentro do postinstall e fazer deploy por git remote, poderia fazer este teste e me retornar ?
Bom dia @Francis_Luis!
Ontem eu adicionei alguns scripts de cache verify no postinstall, não tive retorno. Depois de reiniciar o projeto algumas vezes simplesmente funcionou. Não sei dizer o que era o problema mas não aconteceu mais. Obrigada pela tua sugestão e teu tempo!
Meu problema retornou assim que fiz mais uma alteração. Tentei a sua solução e não resolveu. Preciso do site funcionando e simplesmente não funciona. Já não sei mais o que fazer. Toda vez que altero algo no frontend não consigo fazer deploy. Hoje não posso esperar o problema se resolver sozinho
Para resolver o problema (como eu tinha pressa) passei a commitar o build junto, dispensando o comando de build do lado da Umbler. No entanto não é uma prática que quero manter em meu projeto, dado que as variáveis de ambientes do React acontecem em build-time (ou seja, preciso ficar alterando minhas configurações de ambiente local e expondo isso no git pra resolver um problema que aparentemente não tem relação com o projeto).
Tive um problema similar com o deploy da minha aplicação angular e consegui resolver junto com o pessoal do suporte pelo chat. Mas posso compartilhar algum conhecimento adquirido que talvez ajude.
Se você não está mandando a pasta node_modules a umbler vai fazer o npm install do seu projeto seguindo as dependências do package.json. Logo se esse for o seu caso não é preciso mandar rodar novamente o npm install.
Os scripts que você tem que se preocupar durante o deploy são preinstall, postinstall e start. Onde você provavelmente só deve usar o postinstall e o start assim como eu. O meu ficou assim: https://github.com/nortan-projetos/plataforma/blob/umbler/package.json
Nota que eu também faço a limpeza das coisas que não uso na minha imagem depois do build para reduzir o tamanho da imagem/espaço consumido na umbler.
Já que toda a mágica ficará no postinstall é interessante também fazer a remoção dos pacotes de desenvolvimento para reduzir o tamanho da imagem.
Por fim e não menos importante, configurar as variáveis de ambiente nas configuração da hospedagem no Umbler.
Eu segui sua dica de adicionar o build apenas no postinstall e deixar o start rodar normal. No entanto ele não consegue fazer o build antes do start acontecer, parece que o install ainda está em andamento quando a aplicação sobe, os arquivos do build não são atualizados.
Estou usado o deploy por Git Remote, vou entrar em contato com o suporte.
No seu caso é esse o procedimento mesmo. Na época meu problema também estava no npm install de um pacote do angular que precisava dar um input para prosseguir a instalação. No Heroku eles conseguiam resolver isso sem problemas, mas na Umbler temos que tratar esses casos. Para esse pacote em especifico tinha que alterar uns arquivos de configuração do projeto que desabilitava essa entrada de texto.
Para debugar o procedimento de instalação sugiro tentar o deploy com os seguintes scripts:
O npm install ocorre com sucesso quando você vê o ==INSTALL== no log do build. Mas no fim você deveria ver os 3. Se você ver os 3 outputs, provavelmente o problema está na hora do build. Aí também é bom ir discutindo esses pontos com o pessoal do suporte e ir dando as dicas de onde pode estar o problema.