Como fazer deploy usando GitHub Actions
Neste tutorial, você aprenderá a configurar um processo automatizado de deploy usando GitHub Actions. Isso garantirá que qualquer alteração feita na branch principal do seu repositório GitHub seja automaticamente refletida na sua hospedagem. A seguir, guiaremos você através dos passos necessários para configurar esse fluxo de trabalho e garantir que seu site esteja sempre atualizado sem esforço manual.
-
Para começar, acesse sua conta na Umbler e vá para "Deploy" ➝ "Git via SSH" para copiar a chave SSH fornecida. Em seguida, no GitHub, vá até o diretório do seu repositório e siga para "Settings" ➝ "Deploy Keys". Adicione uma nova chave, forneça um nome e cole a chave SSH copiada no campo "Key". Certifique-se de selecionar a opção "Allow write access".
-
Clone o repositório na sua hospedagem e coloque os arquivos no local apropriado. Normalmente, os arquivos de um site devem ser colocados na pasta public. No entanto, se estiver trabalhando com um site Laravel, alguns arquivos podem precisar estar fora da pasta public, incluindo o diretório .git. A seguir, veja um exemplo dos passos necessários:
1) Acesse via SSH sua hospedagem e clone o seu diretório:
O comando é: git clone + endereço do seu diretório
2) Em seguida, rode em ordem os seguintes comandos:No exemplo, "tutoriais" é o nome do meu repositório no GitHub, é preciso ajustar os comandos para o nome do seu repositório.mv tutoriais/* public - (Copia os arquivos da pasta "tutoriais" para a pasta "public", local onde geralmente ficam todos os arquivos do seu site.
mv tutoriais/.git public/ - (Move o diretório oculto .git da pasta tutoriais para a pasta public)
Veja na imagem a seguir, todos os comandos em sequência: -
Agora, no seu computador pessoal (não na hospedagem), gere uma chave SSH sem senha (o nome da chave pode ser qualquer um) e use o e-mail associado à sua conta GitHub.
Comando: ssh-keygen -C "seu-email@example.com" -
A seguir, abra a chave pública (.pub), copie seu conteúdo e adicione-a na Umbler através do painel de origem do domínio.
-
Retornando ao GitHub, acesse "Settings" → "Secrets and Variables" → "Actions" → "New repository secret" e adicione as informações a seguir. Nesta etapa, você precisará dos dados de conexão via SSH, que podem ser encontrados no painel do seu site, na opção "SSH". Confira a seguir:
No exemplo da imagem anterior, os dados ficariam dessa forma:
- SSH_USER: ssh-user
- SSH_HOST: kamino.ssh.umbler.com
- SSH_PORT: 51401
- SSH_KEY: Chave privada gerada no Passo 3
Diante desses dados, adicione-os no GitHub: -
Ainda no GitHub, vá para “Actions” e clique em “set up a workflow yourself”. Em seguida, cole o código abaixo, mantendo a mesma identação (Alinhamento do código) para que ele funcione corretamente.
name: remote ssh command on: [push] jobs: build: name: Build runs-on: ubuntu-latest steps: - name: executing remote ssh commands using password uses: appleboy/ssh-action@v0.1.10 with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USER }} port: ${{ secrets.SSH_PORT }} key: ${{ secrets.SSH_KEY }} script: cd public && git pull
Observação: Se for um projeto Laravel e estiver fora da pasta public, no comando “script” basta usar apenas “git pull”. -
Pronto! Agora, qualquer alteração feita na branch principal será automaticamente refletida na hospedagem. Para verificar as execuções do script, basta acessar a aba “Actions” no GitHub, onde você encontrará o histórico de todas as vezes que o script foi executado.