Usando Github para publicar apps na PlayStore
Gerar tag, gerar release, fazer build, verificar version code, preencher changelog, subir o apk na PlayStore. Muita coisa trabalhosa que, se ainda não fez, com certeza uma hora fará parte da vida de um Desenvolvedor Android.
É fácil perceber que tudo isso pode ser automatizado, visto que é sempre uma receitinha de bolo, e neste artigo quero mostrar como nós fizemos isso aqui dentro da PrologApp.
Nossa estrutura
Fazer o deploy do nosso app sempre foi algo que causou terror em nossos desenvolvedores. Todo mundo fugia disso, pelo grande trabalho e tempo que isso levava. Por conta disso, decidimos automatizar, já pensando no github actions.
Após muitas buscas sobre actions e conversas sobre a estrutura que adotaríamos, colocamos a mão na massa.
A primeira etapa foi definir como seria a nossa estrutura de deploy. Antes da automatização, nós fazíamos o build no próprio Android Studio, subíamos o apk para um servidor da Amazon, para que nossa equipe de vendas pudesse obter a versão mais atualizada de antemão para uso nas apresentações, e em seguida fazíamos o upload para a PlayStore.
Além disso, nós tínhamos duas branches principais no projeto: master e dev. A master guardava nosso código na versão de produção e a dev, era a branch que continha as novas linhas de código.
Com tudo isso mapeado, concluímos: todo nosso processo iria começar no merge para a master e finalizar em duas pontas: um upload para a Aws e outro para a PlayStore.
Além disso, por aqui nós usamos o discord para comunicação interna da empresa, então decidimos enviar mensagens em alguns canais informando que uma nova versão havia saído.
De forma resumida, ficamos com a seguinte estrutura:
Funcionamento da action
Nossa action ficou bem longa e completa, com várias chamadas de actions internas. Deixei aqui a explicação de cada etapa:
Configurando tudo
Para que a action funcione, é necessário que ela esteja no seguinte caminho: .github/workflows/
Além disso, também é necessário ter o arquivo NEW_RELEASE.md e CHANGELOG.md na raiz do projeto. A estrutura do arquivo NEW_RELEASE.md é a seguinte:
new_release.version_name=v1.30.0### Features
* Nova feature 1
* Nova feature 2### Bug Fixes
* Correção de bug 1
* Correção de bug 2### Refactors
* Refactor realizado 1
* Refactor realizado 2
Disparando a action
Por fim, para disparar a action, basta preencher o version name no arquivo NEW_RELEASE.md conforme tem o exemplo acima e mergear a branch de desenvolvimento (no nosso caso dev) na branch master.
Concluindo
Realmente fazer todo o deploy de um aplicativo é complexo. Também é complexo montar toda a estrutura de automatização, mas garanto que vale a pena. Tudo acontecer sozinho, com apenas poucos cliques, não tem preço!
Mas me conta, você tem seu deploy automatizado? Como foi o processo de automatizaçao? Estou curioso!
Atenção: estamos com vaga aqui no time! Acessa o link e dá uma olhada https://prologapp.com/trabalhe-com-a-gente/