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

  1. Interface simples e intuitiva;
  2. Plano free para desenvolvedores de projetos Open Source (Developer Plan).
  3. Utilização de Step’s criados pela comunidade;
  4. Documentação objetiva;
  5. 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:

  1. Type (Push, Pull Request e Tag);
  2. Source Branch;
  3. Target Branch;
  4. 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).