Introdução — Bitrise CI/CD Android

Compartilhe

Compartilhar no facebook
Compartilhar no google
Compartilhar no twitter
Compartilhar no linkedin

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):

format_version: '6'
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
project_type: android
trigger_map:
push_branch: "*"
workflow: primary
pull_request_source_branch: "*"
workflow: primary
workflows:
deploy:
description: |
## To run this workflow
If you want to run this workflow manually:
1. Open the app's build list page
2. Click on **[Start/Schedule a Build]** button
3. Select **deploy** in **Workflow** dropdown input
4. Click **[Start Build]** button
Or if you need this workflow to be started by a GIT event:
1. Click on **Triggers** tab
2. Setup your desired event (push/tag/pull) and select **deploy** workflow
3. Click on **[Done]** and then **[Save]** buttons
The next change in your repository that matches any of your trigger map event will start **deploy** workflow.
steps:
activate-ssh-key@4.0.3:
run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
git-clone@4.0.11: {}
cache-pull@2.0.1: {}
script@1.1.5:
title: Do anything with Script step
install-missing-android-tools@2.2.0:
inputs:
gradlew_path: "$PROJECT_LOCATION/gradlew"
change-android-versioncode-and-versionname@1.1.1:
inputs:
build_gradle_path: "$PROJECT_LOCATION/$MODULE/build.gradle"
android-lint@0.9.4:
inputs:
project_location: "$PROJECT_LOCATION"
module: "$MODULE"
variant: "$TEST_VARIANT"
android-unit-test@0.9.3:
inputs:
project_location: "$PROJECT_LOCATION"
module: "$MODULE"
variant: "$TEST_VARIANT"
android-build@0.9.5:
inputs:
project_location: "$PROJECT_LOCATION"
module: "$MODULE"
variant: "$BUILD_VARIANT"
sign-apk@1.2.3:
run_if: '{{getenv "BITRISEIO_ANDROID_KEYSTORE_URL" | ne ""}}'
deploy-to-bitrise-io@1.3.15: {}
cache-push@2.0.5: {}
primary:
steps:
activate-ssh-key@4.0.3:
run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
git-clone@4.0.11: {}
cache-pull@2.0.1: {}
script@1.1.5:
title: Do anything with Script step
install-missing-android-tools@2.2.0:
inputs:
gradlew_path: "$PROJECT_LOCATION/gradlew"
android-lint@0.9.4:
inputs:
project_location: "$PROJECT_LOCATION"
module: "$MODULE"
variant: "$TEST_VARIANT"
android-unit-test@0.9.3:
inputs:
project_location: "$PROJECT_LOCATION"
module: "$MODULE"
variant: "$TEST_VARIANT"
deploy-to-bitrise-io@1.3.15: {}
cache-push@2.0.5: {}
app:
envs:
opts:
is_expand: false
PROJECT_LOCATION: "."
opts:
is_expand: false
MODULE: app
opts:
is_expand: false
BUILD_VARIANT: Debug
opts:
is_expand: false
TEST_VARIANT: Debug

view raw
bitrise.yml
hosted with ❤ by GitHub

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).

Deixe um comentário

Categorias

Posts relacionados

Siga-nos

Baixe nosso e-book!

%d blogueiros gostam disto: