Olá comunidade,
Venho compartilhar com vocês uma solução de integração continua para o GitHub para quem já aderiu a nova nomenclatura dos ramos. Atualmente a Umbler não dá suporte da integração de deploy do GitHub para outros ramos que não seja o master
, enquanto eles não concertam isso, podemos usar o poder o GitHub actions para tal.
Antes de começarmos vamos listar o único pré-requisito da solução:
- Para acessar o servidor Umbler via ssh é necessário ter uma aplicação rodando sem problemas na Umbler. Caso ainda não tenha publicado nada ou a aplicação está com problemas, sugiro seguir esse tutorial para levantar uma aplicação temporária e conseguir fazer ssh para o servidor.
O processo tem dificuldade intermediária e requer alguns passos prévios para liberar o acesso via ssh, então vamos lá.
-
Criar chave ssh localmente: Felizmente a Umbler tem um tutorial que atende as nossas necessidades, basta seguir essas instruções. Uma vez com a chave criada teremos 2 arquivos, a chave privada
id_rsa
e a chave públicaid_rsa.pub
na pasta indicada. -
Adicionar chave pública no gerenciador de chaves ssh no site da Umbler no endereço https://app.umbler.com/core/sshkeys. Basta copiar o conteúdo do arquivo
id_rsa.pub
e colar lá. Também escolha um nome para identificar a chave. Teste se tudo deu certo até então habilitando o ssh e faça um ssh para o servidor umbler. Ambas configurações são feitas e visualizadas em https://app.umbler.com/plataforma.nortanprojetos.com/website/ssh. -
Remover o arquivo
known_hosts
na mesmas pasta que estão as chaves, caso o arquivo exista. Fazer um push para o remote da Umbler localmente e aceitar a adição do endereço no known_hosts. (Note que esse passo requer que já tenha o remote da Umbler via ssh configurado localmente no seu repositório, para isso basta entrar pelo site da umbler na página de configuração do seu site, ir emGit via ssh
) -
Adicionar os segredos no repositório do GitHub no qual deseja fazer a integração continua:
-
SSH_KEY
: Copiar a colar o conteúdo do arquivo da chave privadaid_rsa
. -
KNOWN_HOSTS
: Copiar a colar o conteúdo do arquivo da chave privadaknown_hosts
-
UMBLER_REMOTE
: O endereço git via ssh exibido na página de deploy usando git remote
- Por fim basta adicionar o código abaixo no repositório seguindo o caminho
.github/workflows/umbler-deploy.yml
, trocando ooBranchDesejadoAqui
pelo nome do branch desejado:
name: Deploy para a Umbler
on:
push:
branches: [oBranchDesejadoAqui]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Instala chave SSH
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
known_hosts: ${{ secrets.KNOWN_HOSTS }}
- name: Checkout do branch
uses: actions/checkout@v2
with:
ref: oBranchDesejadoAqui
- name: Commit para Umbler usando git remote
run: |
git remote add umbler ${{ secrets.UMBLER_REMOTE }}
git push umbler oBranchDesejadoAqui:master -f
Uma sugestão também é criar um github action para fazer o deploy direto para a Umbler. Eu comecei a fazer algo nessa linha por aqui, mas acabei optando pelo workflow. Fica a sugestão para a equipe de desenvolvimento