Introdução — Bitrise CI/CD Android
Bitrise é uma plataforma em nuvem que proporciona o serviço de Integração contínua e Entrega contínua, com ênfase em desenvolvimento mobile (iOS, Android, Xamarin, React Native, etc).
Principais características
- Interface simples e intuitiva;
- Plano free para desenvolvedores de projetos Open Source (Developer Plan).
- Utilização de Step’s criados pela comunidade;
- Documentação objetiva;
- Integração com ferramentas de qualidade de código (SonarQube, Detekt, Lint, etc);
Workflow:
Um workflow é definido pelo conjunto de Steps que serão executados em ordem Top-Down. Ao criar um Workflow o arquivo bitrise.yml é gerado e nele irá conter todas as informações que serão executadas pela build. Após a execução de uma build, serão gerados os logs contendo os resultados. É possível alterar as configurações editando o arquivo bitrise.yml ou utilizando a interface de edição (Workflow Editor UI).
Exemplo de Workflow gerado pelo Bitrise (no primeiro build):
Step:
São representados por blocos de código que serão executados de acordo com uma order pré definida em determinado workflow. Eles são desenvolvidos pela comunidade e podem ser escrito em várias linguagem como: bash, Go, Ruby, Swift, etc. Vale lembrar que qualquer pessoa poderá criar um Step e divulgar na comunidade.
Trigger:
São os gatilhos disparados a partir de uma chamada do Webhook do projeto, essas chamadas podem ser de: push, pull request e tag.
Eles são compostos por:
- Type (Push, Pull Request e Tag);
- Source Branch;
- Target Branch;
- Workflow.
Build:
São processos definidos pelos Workflows, que são construído através do encadeamento de Steps e executados por um Trigger.
Após a build ser finalizada, podemos configurar um step para disponibilizar e/ou armazenar os artefatos gerados.
Configurando o projeto
1. Devemos adicionar um novo app no dashboard do Bitrise. Para isso é necessário acessar o link https://app.bitrise.io/apps/add
2. Definir qual conta será vinculada e o nível de privacidade do projeto;
3. Definir em qual plataforma está armazenado o repositório;
4. Definir a branch principal do projeto;
5. Neste passo o Bitrise irá validar seu projeto e a branch escolhida;
6. Após a validação, devemos definir qual será o root path do projeto, seu módulo e a variant de build;
7. Por fim, podemos adicionar um Webhook ao projeto.
Um Webhook provê mecanismos para os servidores notificarem os clients sobre mudanças nos dados, nele é aplicado o paradigma reativo. No caso do Bitrise, iremos utilizar um Webhook que ficará responsável por observar as mudanças em uma determinada branch e a partir de uma mudança ele irá disparar o Trigger, dando início ao processo de Build.
8. Após a configuração, o Bitrise irá executar automaticamente o seu primeiro Build. Ele seguirá os passos definidos pelo Workflow primário (gerado automaticamente, com validações de Lint e testes unitários).