CircleCI: fundamentos, orbs e integração contínua

Autor: IT Sectr Publicado: 2026-04-13 Tempo de leitura: 8 min

CircleCI é uma plataforma CI/CD em nuvem para automatizar a compilação, teste e implantação de software, incluindo aplicativos móveis para iOS e Android. De acordo com CircleCI, 2024, a plataforma processa mais de 30 milhões de builds mensalmente e oferece uma arquitetura única baseada em orbs — pacotes de configuração prontos para ferramentas populares.

Principais pontos

  • CircleCI — plataforma CI/CD em nuvem com suporte para builds móveis, Docker e ambientes macOS
  • Orb — pacote de configuração YAML pronto que simplifica a configuração de ferramentas e serviços populares
  • Executor — ambiente de execução de jobs: imagem Docker, VM Linux, macOS ou Windows
  • Parallelism — divisão de testes em vários contêineres para execução paralela
  • Caching preserva dependências entre execuções, reduzindo o tempo de build em 3–5 vezes

O que é CircleCI?

CircleCI é uma plataforma CI/CD em nuvem fundada em 2011. O sistema permite descrever pipelines em um arquivo YAML .circleci/config.yml e executá-los em contêineres isolados ou máquinas virtuais. O CircleCI suporta todas as linguagens e plataformas populares, incluindo Android, iOS, Flutter e React Native.

Para desenvolvimento móvel, o CircleCI oferece executores macOS para builds iOS com Xcode pré-instalado, executores Linux para Android com Android SDK, além de cache para Gradle e CocoaPods. Uma característica-chave são os orbs, que permitem conectar configurações prontas com uma única linha: orb: android, orb: ios, orb: flutter. O CircleCI detecta automaticamente o tipo de projeto e sugere uma configuração modelo ao conectar um repositório pela primeira vez.

A plataforma suporta acesso SSH a contêineres em execução para depuração — um recurso útil para solucionar problemas de builds com falha. CircleCI CLI permite validar e executar configurações localmente, gerenciar orbs e visualizar logs. A plataforma se integra com GitHub, GitHub Enterprise, Bitbucket e GitLab através de um sistema de webhooks.

Arquitetura do CircleCI: Orbs, Executors e Contexts

A arquitetura do CircleCI consiste em três níveis: Pipeline, Workflow e Job. Pipeline é o processo raiz acionado por um commit. Um Pipeline consiste em Workflows — um grafo de Jobs que podem ser executados sequencialmente ou em paralelo. Cada Job é executado em um Executor — um ambiente com uma imagem específica. Um Workflow pode incluir approval gates — confirmação manual antes da implantação.

Orbs são pacotes de configuração YAML reutilizáveis distribuídos através do CircleCI Orb Registry. Um Orb pode conter jobs, commands, executors e exemplos. Orbs populares: android, ios, flutter, firebase, slack. Por exemplo, adicionar o orb android substitui mais de 50 linhas de configuração por uma única linha. O CircleCI CLI permite criar, testar e publicar seus próprios orbs para padronizar pipelines em toda a organização.

Tipos de Executors

ExecutorAdequado paraAmbiente de build
DockerAndroid, BackendContêiner Linux
macOSiOS, macOSVM macOS com Xcode
MachineDocker-in-DockerVM Ubuntu
Windows.NET, WinUIWindows Server

Contexts são conjuntos nomeados de variáveis de ambiente disponíveis no nível da organização. Por exemplo, o contexto app-store-credentials contém o Apple ID e senha para publicar na App Store. Isso simplifica o gerenciamento de secrets entre projetos sem duplicação.

Configuração do CircleCI para projetos Android e iOS

Para um projeto Android, o CircleCI usa a imagem Docker cibuilds/android com Android SDK. Um workflow típico inclui: checkout, instalação do JDK, cache do Gradle, build e execução de testes. Para iOS, é necessário um executor macOS com Xcode e configuração de code signing. Ao conectar pela primeira vez, o CircleCI detecta automaticamente o tipo de projeto e gera uma configuração básica com configurações recomendadas.

Para projetos Flutter, o CircleCI fornece o orb circleci/flutter, que inclui executores com Flutter SDK pré-instalado para Linux e macOS. O orb suporta build para ambas as plataformas, cache de pub-cache e execução de testes. A configuração se resume a especificar a versão do Flutter e os comandos de build. Para versões personalizadas de Flutter ou Dart, você pode usar uma imagem Docker com o SDK necessário. O orb Flutter também suporta opções avançadas — por exemplo, análise de código via dart analyze antes do build.

Orb Android — início rápido

O orb Android do CircleCI fornece jobs prontos: build-and-test, deploy-to-play-store. O orb configura automaticamente o ambiente, cache e assinatura. Após adicionar o orb, você só precisa especificar a versão do SDK e os comandos de build.

Build iOS com executor macOS

Para builds iOS, o executor é configurado como macos com uma versão do Xcode. O CircleCI fornece imagens com Xcode 14, 15 e 16. Após o checkout, o código é compilado via xcodebuild e os testes são executados no simulador. O code signing é configurado via fastlane match ou instalação manual de certificados.

Cache e execução paralela

O cache é um elemento-chave de desempenho no CircleCI. O mecanismo de cache salva diretórios entre execuções de workflow usando uma chave. Para Gradle, ~/.gradle é armazenado em cache; para CocoaPods — Pods/; para npm/SPM — node_modules/.build. Quando o arquivo lock muda, o cache é atualizado automaticamente. O CircleCI suporta políticas separadas: save_cache pode ser adiada (when: always), enquanto restore_cache é obrigatória.

O paralelismo combinado com resource class permite ajustar o desempenho do build. Resource class determina a CPU e RAM para um contêiner: small (1 CPU, 2 GB), medium (2 CPU, 4 GB), medium+ (3 CPU, 5 GB) e large (4 CPU, 8 GB). Para builds iOS com Xcode, recomenda-se usar um executor macOS com resource class medium ou larger — a compilação de código Swift requer recursos significativos.

O paralelismo divide os testes em vários contêineres, reduzindo o tempo de execução. Por exemplo: parallelism: 4 executa testes em 4 contêineres paralelos. O CircleCI distribui automaticamente os arquivos de teste entre os contêineres. O comando circleci tests glob coleta a lista de testes e o circleci tests split os distribui uniformemente.

Exemplo de cache do Gradle

yaml
- restore_cache:
    keys:
      - v1-gradle-{{ checksum "build.gradle" }}
      - v1-gradle-

- run: ./gradlew assembleDebug

- save_cache:
    key: v1-gradle-{{ checksum "build.gradle" }}
    paths:
      - ~/.gradle/caches
      - ~/.gradle/wrapper

Exemplo de configuração .circleci/config.yml

Vamos ver uma configuração completa do CircleCI para um projeto Android com dois jobs: build e test. A configuração inclui um executor Docker com Android SDK, cache do Gradle e execução paralela de testes. Os artifacts são salvos para download. O workflow build-and-test executa ambos os jobs a cada push no branch principal.

yaml
version: 2.1

orbs:
  android: circleci/android@2.5.0

jobs:
  build:
    executor: android/default
    steps:
      - checkout
      - android/restore-gradle-cache
      - run: ./gradlew assembleRelease
      - android/save-gradle-cache
      - store_artifacts:
          path: app/build/outputs/apk/release
      - store_test_results:
          path: app/build/reports/tests

  test:
    executor: android/default
    parallelism: 4
    steps:
      - checkout
      - android/restore-gradle-cache
      - run:
          command: |
            cd app
            ./gradlew test

workflows:
  version: 2
  build-and-test:
    jobs:
      - build
      - test

Orbs: soluções CI/CD prontas

Ao escolher entre CircleCI e alternativas — se sua equipe usa GitHub, o GitHub Actions pode ser uma escolha mais simples. O CircleCI é preferível para equipes que precisam de execução paralela flexível de testes, configuração personalizada do ambiente executor e estatísticas detalhadas de builds. CircleCI Insights fornece um painel com métricas de desempenho de pipelines: tempo médio de build, tendências e gargalos. O Insights ajuda a identificar jobs de longa duração e otimizá-los. A API do CircleCI permite gerenciar pipelines programaticamente, acionar builds e obter métricas.

Para gerenciamento seguro de secrets, o CircleCI suporta Contexts — conjuntos nomeados de variáveis de ambiente no nível da organização. Os Contexts são protegidos por acesso baseado em funções: apenas equipes específicas podem usar um determinado contexto. Por exemplo, o contexto production-deploy contém chaves do App Store Connect e está disponível apenas para desenvolvedores líderes. Combinado com approval gates, isso forma um sistema de segurança CI/CD abrangente.

O CircleCI Orb Registry contém centenas de pacotes prontos para várias tarefas de CI/CD. Para desenvolvimento móvel, os orbs principais incluem: circleci/android, circleci/ios, circleci/flutter, laurencerussell/firebase-app-distribution. Cada orb é versionado e documentado. Orbs podem ser públicos (disponíveis para todos) ou privados (apenas para sua organização).

Usar orbs reduz a configuração em 5–10 vezes. Por exemplo, o orb circleci/android fornece o executor android/default com SDK pré-instalado e comandos restore-gradle-cache, save-gradle-cache. O orb circleci/ios inclui um executor com Xcode e comandos para code signing via fastlane. Orbs podem ser facilmente combinados: adicione um orb android para build e um orb slack para notificações.

O CircleCI também oferece suporte integrado a relatórios de teste. Store_test_results analisa e visualiza automaticamente resultados de teste de JUnit, XCTest e outros formatos. Para projetos móveis, isso significa visualização centralizada de testes com falha, tendências de tempo de execução e histórico de estabilidade de builds, simplificando a manutenção da qualidade do código.

Exemplo com orb iOS

yaml
orbs:
  ios: circleci/ios@2.0.0

jobs:
  build-and-test:
    executor: ios/default
    steps:
      - checkout
      - ios/install-dependencies
      - ios/build-and-test

Publicação de um orb personalizado está disponível através do CircleCI CLI. Os comandos circleci orb create e circleci orb publish enviam o orb para o registro. Isso é útil para padronizar CI/CD dentro de uma organização — crie uma vez, use em todos os projetos.

Perguntas frequentes

Quanto custa o CircleCI?

O CircleCI oferece um plano gratuito com 6000 minutos por mês para um contêiner. O Performance Plan ($30/mês) inclui 10 jobs paralelos e 14.000 minutos. O Scale Plan oferece preços personalizados com paralelismo ilimitado.

O que são orbs no CircleCI?

Orbs são pacotes de configuração YAML reutilizáveis distribuídos através do registro oficial. Eles contêm jobs, commands e executors prontos para ferramentas e plataformas populares.

O CircleCI suporta builds iOS?

Sim, o CircleCI suporta o executor macOS com Xcode pré-instalado (versões 14, 15, 16). Imagens para iOS 17 e 18, watchOS e tvOS estão disponíveis. O code signing é configurado via fastlane match ou manualmente.

Como funciona a execução paralela de testes no CircleCI?

Especifique parallelism: N no job — o CircleCI dividirá os testes em N contêineres. O comando circleci tests split distribui os testes uniformemente. Os testes são executados em paralelo, reduzindo o tempo total proporcionalmente ao número de contêineres.

Qual a diferença entre CircleCI e GitHub Actions?

O CircleCI oferece executores mais flexíveis (Docker, macOS, Machine, Windows), um sistema avançado de orbs, divisão de testes paralela integrada e artifacts de build detalhados. O GitHub Actions se destaca pela integração com GitHub e simplicidade.

Resumo

  • CircleCI — plataforma CI/CD em nuvem com executores Docker, macOS e Windows para projetos móveis
  • Orbs — pacotes de configuração YAML prontos que reduzem a configuração de pipelines em 5–10 vezes
  • Executor define o ambiente de execução — Docker para Android, VM macOS para iOS, Machine para Docker-in-Docker
  • Parallelism divide os testes em vários contêineres, reduzindo proporcionalmente o tempo de execução
  • Caching via restore_cache e save_cache acelera builds em 3–5 vezes com configuração de chave adequada
  • Contexts — armazenamento seguro de secrets no nível da organização com acesso entre projetos
  • Orb iOS e Orb Android fornecem jobs prontos para build, teste e implantação de aplicativos móveis

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também