
🚀 CI/CD Android com Azure DevOps | Pipeline Completa + Deploy Google Play
Este artigo detalha o processo de implementação de um pipeline CI/CD (Integração Contínua/Entrega Contínua) para aplicações Android utilizando Azure DevOps, culminando na implantação para a Google Play Store. O objetivo principal é automatizar a construção, teste e implantação de aplicativos Android, garantindo eficiência e consistência. O processo é segmentado em duas fases principais: a fase de construção e a fase de implantação, cada uma composta por várias tarefas configuráveis. Desde a configuração do gatilho do pipeline até a integração com a Google Play Store através de uma conexão de serviço, o guia aborda cada etapa detalhadamente. Ele também discute a importância dos parâmetros de tempo de execução, a gestão de versões do aplicativo, a instalação de dependências, a construção do artefato (APK ou Bundle) e a aprovação manual para implantações de produção. Além disso, o artigo fornece informações sobre como configurar a autenticação e autorização necessárias no Google Cloud Platform e na Google Play Console, e inclui uma menção a um arquivo Docker para construção em ambientes Ubuntu, oferecendo uma alternativa ao agente macOS.
Configuração do Gatilho do Pipeline
A configuração inicial de um pipeline CI/CD no Azure DevOps envolve a definição de como o pipeline será ativado. O processo é acionado por ações como commits ou pull requests para um branch específico, como o branch de teste. No entanto, é possível excluir certos caminhos, como arquivos de configuração do próprio Azure DevOps (ex: azure-pipeline.yml
), para evitar que alterações nesses arquivos acionem o pipeline. Isso permite um controle granular sobre quando as automações são executadas, garantindo que apenas as alterações relevantes ao código-fonte do aplicativo acionem o processo de CI/CD. Segundo o orador, "sempre que alguma ação acontecer no arquivo Azure-pipeline.yml
, nenhum gatilho acontecerá, então o pipeline não será acionado quando você estiver fazendo um commit ou pull request no seu arquivo Azure-pipeline.yml
".
Agente do SO e Parâmetros
Para este pipeline de CI/CD, utiliza-se um agente Mac OS, que é a base para a execução das tarefas de construção e implantação. Além disso, o pipeline incorpora parâmetros que permitem a entrada de dados do usuário em tempo de execução, como o "nome da versão" e as "notas da versão". O nome da versão, por exemplo, como '232', é crucial, pois a Google Play Store não permite o upload de aplicativos com o mesmo número de versão. Se a versão anterior foi '232', a próxima deve ser '233'. As notas da versão, por sua vez, servem para documentar as mudanças ou observações relevantes para cada implantação.
Estágios de Construção e Implantação
O pipeline é dividido em dois estágios principais para organizar as tarefas de forma lógica e eficiente: o estágio de construção e o estágio de implantação. Essa abordagem por estágios permite diferenciar as tarefas e garantir que elas sejam executadas na ordem correta, com dependências claras entre os processos.
Estágio de Construção
O estágio de construção é responsável por preparar o aplicativo para a implantação, incluindo a instalação de dependências e a geração do artefato do aplicativo.
Instalação de Dependências
A primeira tarefa no estágio de construção é a instalação de dependências. Para projetos Android que utilizam React Native, isso geralmente envolve a execução de comandos como yarn install
ou npm install
, que baixam os módulos especificados no arquivo package.json
e em arquivos de configuração específicos do Android. Essa etapa garante que todas as bibliotecas e ferramentas necessárias para a construção estejam disponíveis no ambiente do agente.
Processo de Construção com Gradle
Após a instalação das dependências, o próximo passo é a construção do aplicativo. Utiliza-se a ferramenta Gradle, que exige a passagem de vários parâmetros, como o caminho para o arquivo gradlew
(geralmente localizado na pasta android
), a versão do Java Development Kit (JDK) (neste caso, a versão 17) e a quantidade de recursos de memória alocados (ex: 4096 MB de RAM). O processo de construção pode gerar um arquivo APK ou um Android App Bundle (AAB), dependendo da configuração do projeto. O artefato gerado é então copiado e publicado como um artefato de build no Azure DevOps, tornando-o acessível para estágios subsequentes e para futuras auditorias.
Estágio de Implantação
O estágio de implantação é condicional e só é executado após a conclusão bem-sucedida do estágio de construção e quando o pipeline é executado no branch principal (main). Esse estágio também incorpora um mecanismo de aprovação manual para garantir que as implantações para ambientes de produção sejam revisadas e aprovadas por indivíduos designados.
Ambientes e Aprovações
O Azure DevOps oferece o recurso de "ambientes", que permite definir um conjunto de recursos e aprovações para implantação. Neste caso, é configurado um ambiente chamado "Google Play Internal", onde aprovadores específicos devem autorizar a implantação. "Se o Sr. X aprovar essa implantação, então somente a implantação acontecerá para o estágio particular, caso contrário, ela permanecerá no estado de permissão pendente", explica o orador. Isso adiciona uma camada de segurança e controle, especialmente para lançamentos em lojas de aplicativos públicas.
Tarefa de Lançamento na Google Play Store
Uma vez que a construção foi concluída e o arquivo APK (ou AAB) está publicado, a tarefa de implantação baixa esse artefato e o envia para a Google Play Store. Os parâmetros de "nome da versão" e "notas da versão", definidos no início do pipeline, são passados nesta etapa para facilitar o reconhecimento da versão e suas informações na Play Store. Essa etapa finaliza o ciclo de CI/CD, automatizando o processo de lançamento do aplicativo para os usuários.
Conexão de Serviço com a Google Play Store
Para que o Azure DevOps possa se autenticar e interagir com a Google Play Developer API, é necessário configurar uma conexão de serviço. Esse processo envolve a criação de uma conta de serviço no Google Cloud Platform, a habilitação da Google Play Android Developer API, a geração de uma chave JSON e a adição dessa conta de serviço como um usuário na Google Play Console com as permissões apropriadas para gerenciar aplicativos. A chave JSON e o ID da conta de serviço são então configurados no Azure DevOps para estabelecer a autenticação e autorização necessárias.
Arquivo Docker para Construção em Ubuntu
Como um "ponto bônus", o orador compartilha um Dockerfile que permite construir aplicativos Android em um ambiente Ubuntu. Embora o pipeline principal use um agente macOS, este Dockerfile oferece flexibilidade para ambientes de construção Linux. Ele inclui a instalação das ferramentas necessárias, como Node.js e as ferramentas de linha de comando do Android (Android SDK Command Line Tools), permitindo a criação de imagens Docker personalizadas para a construção de aplicativos Android. Isso é particularmente útil para depuração e testes de configuração em diferentes sistemas operacionais.
Takeaways
- Configuração do Gatilho: O pipeline é acionado por commits ou pull requests para branches específicos, com a opção de excluir arquivos específicos para maior controle.
- Agente e Parâmetros: Utiliza um agente macOS, com parâmetros de entrada para nome e notas da versão, essenciais para o controle de versão na Google Play Store.
- Estágios de Build e Deploy: O pipeline é dividido em estágios de construção e implantação, garantindo ordem lógica e dependências.
- Instalação de Dependências: A primeira tarefa do build é instalar dependências (ex: React Native modules via Yarn/NPM), preparando o ambiente.
- Construção com Gradle: O Gradle é utilizado para gerar o APK/AAB, com parâmetros de caminho, versão Java e recursos de memória.
- Publicação de Artefatos: O artefato construído é copiado e publicado no Azure DevOps para acesso em estágios subsequentes e auditoria.
- Condições de Implantação: O estágio de implantação é condicional, executado apenas após o sucesso do build e em branches específicos (ex: main).
- Aprovações de Ambiente: O recurso de ambientes do Azure DevOps permite aprovações manuais (ex: "Google Play Internal"), adicionando segurança à implantação.
- Implantação na Google Play Store: A tarefa final faz o upload do APK/AAB para a Google Play Store, utilizando os parâmetros de versão definidos.
- Conexão de Serviço: É crucial configurar uma conexão de serviço com a Google Play Store no Azure DevOps, utilizando uma conta de serviço e chave JSON do Google Cloud.
- Dockerfile para Ubuntu: Um Dockerfile é fornecido como bônus, permitindo a construção de apps Android em ambientes Ubuntu, oferecendo flexibilidade de SO.
References
© 2025 ClarifyTube. All rights reserved.