Travis CI: o que é, recursos e uso no desenvolvimento de aplicações

Autor: IT Sectr Publicado: 2026-04-14 Tempo de leitura: 9 min

Travis CI é uma plataforma CI/CD em nuvem que automatiza a construção, teste e implantação de aplicações móveis sem gerenciar sua própria infraestrutura. O serviço integra-se diretamente com GitHub e Bitbucket, acionando builds a cada push ou Pull Request. De acordo com Travis CI, 2025, a plataforma processa mais de 10 milhões de builds mensalmente. A configuração é feita através de um único arquivo YAML .travis.yml na raiz do repositório.

Pontos principais

  • Travis CI — uma plataforma CI/CD em nuvem para automatizar a construção e teste de aplicações móveis
  • .travis.yml — um arquivo de configuração YAML que define o ambiente, estágios de build e implantação
  • Build Matrix — execução paralela de builds em diferentes versões de SO, linguagem ou SDK
  • Integração — suporte nativo para GitHub, Bitbucket e status de Pull Request do GitHub
  • Infraestrutura em nuvem — ambientes macOS e Linux pré-instalados com Xcode e Android SDK

O que é Travis CI e como funciona

Travis CI é um serviço de integração contínua em nuvem que executa automaticamente builds e testes quando alterações são feitas em um repositório Git. Após conectar um repositório via GitHub ou Bitbucket, o Travis CI rastreia novos commits, Pull Requests e criação de tags, executando a configuração do .travis.yml em um ambiente virtual isolado.

O processo de trabalho do Travis CI consiste em três etapas: gatilho (push ou Pull Request), configuração do ambiente (install) e execução de tarefas (script). O serviço seleciona automaticamente uma máquina virtual com um conjunto de ferramentas pré-instaladas — imagens macOS com Xcode para iOS, imagens Linux com Android SDK e níveis de API para Android.

O Travis CI suporta Build Matrix — um mecanismo de execução paralela da mesma configuração com diferentes parâmetros. Por exemplo, você pode testar simultaneamente uma aplicação iOS no Xcode 15 e Xcode 16, e uma aplicação Android na API 33 e API 34. Cada combinação é executada em uma máquina virtual separada, reduzindo o tempo total de validação.

Travis CI vs outros sistemas CI/CD para projetos móveis

Travis CI difere do Jenkins e GitLab CI pelo foco na facilidade de configuração e ausência de custos de infraestrutura. O Jenkins requer instalação em servidor próprio e configuração de agentes, o GitLab CI requer uma instância GitLab autogerenciada ou em nuvem. O Travis CI funciona por assinatura e não requer administração de servidores.

Comparado ao GitHub Actions, o Travis CI fornece imagens macOS mais maduras para builds iOS e documentação detalhada para desenvolvimento móvel. O GitHub Actions, por outro lado, é melhor integrado ao ecossistema GitHub e tem mais ações da comunidade para tarefas específicas de build móvel.

Para desenvolvimento Android, o Travis CI oferece imagens prontas com Android SDK 34, Gradle 8 e suporte a emuladores. O tempo de inicialização do build é de 45–90 segundos, comparável aos concorrentes. A principal limitação é o limite de builds paralelos, que depende do plano de preços.

Arquitetura e princípio de funcionamento do Travis CI

A arquitetura do Travis CI é construída sobre microsserviços que gerenciam a fila de trabalhos, alocação de máquinas virtuais e processamento de resultados. Ao receber um webhook do GitHub, a plataforma coloca o trabalho em uma fila, encontra uma máquina virtual disponível com a imagem de linguagem apropriada e executa os comandos do .travis.yml.

Cada build é executado em um ambiente isolado com uma imagem de SO limpa. O Travis CI suporta três tipos de ambiente: Ubuntu Linux (padrão), macOS (para builds iOS e macOS) e Windows (para .NET e UWP). Para projetos móveis, o suporte a imagens macOS com Xcode e Fastlane pré-instalados é crítico.

O ciclo de vida do build inclui fases: before_install (configuração do sistema), install (instalação de dependências), before_script (preparação de testes), script (execução de testes e build), after_script (limpeza). Cada fase é opcional e configurável no arquivo YAML.

Build Matrix no Travis CI

Build Matrix permite testar uma aplicação com diferentes versões de linguagem, SDK ou ambiente em builds paralelos. A matriz é definida através das chaves language, os, env e inclui a geração automática de todas as combinações possíveis. Para projetos móveis, é útil para verificar compatibilidade com diferentes versões de iOS ou Android API.

Ao usar a matriz, o Travis CI lança uma máquina virtual separada para cada combinação. Isso aumenta o consumo total de minutos de build, mas é criticamente importante para projetos que suportam múltiplas versões de SO. Limite o tamanho da matriz a 4–6 combinações para uma relação ideal entre cobertura e custo.

Sintaxe do .travis.yml

O arquivo .travis.yml usa formato YAML e consiste em chaves raiz: language, os, dist (versão da distribuição), before_install, install, script e deploy. Cada chave pode conter uma string, um array de comandos ou um dicionário para configurações mais complexas. O Travis CI processa as chaves em ordem estrita, garantindo a previsibilidade da execução do build.

Para projetos iOS, a chave osx_image com a versão do Xcode é obrigatória, por exemplo xcode15.2. Para Android — a chave android com componentes SDK. O Travis CI suporta a chave deploy com provedores para upload automático de artefatos para App Store Connect, Google Play, Firebase ou GitHub Releases após um build bem-sucedido.

yaml
# .travis.yml com Build Matrix para iOS
language: objective-c
os: osx
osx_image: xcode15.2
env:
  - SCHEME=App-iOS
  - SCHEME=App-tvOS
script:
  - xcodebuild -scheme $SCHEME clean build test

Configuração do .travis.yml para projetos iOS

Para projetos iOS, o .travis.yml deve especificar objective-c ou swift como linguagem, a versão do Xcode via osx_image e a instalação de dependências via CocoaPods ou Swift Package Manager. O Travis CI suporta todas as versões atuais do Xcode, incluindo Xcode 16 com iOS 18 SDK, permitindo testar aplicações nas APIs mais recentes.

Uma etapa importante é o gerenciamento de certificados para assinatura de código. Use arquivos criptografados do Travis CI para armazenar perfis de provisionamento e certificados no repositório. O Fastlane Match também é suportado através de variáveis de ambiente TRAVIS criptografadas, simplificando a configuração de assinatura para builds AdHoc e App Store.

yaml
# .travis.yml para aplicação iOS com Fastlane
language: swift
os: osx
osx_image: xcode15.2
branches:
  only:
    - main
    - /\d+\.\d+\.\d+/
before_install:
  - gem install cocoapods
  - gem install fastlane
install:
  - pod install --repo-update
script:
  - fastlane scan
  - fastlane gym

Para projetos com testes de UI em XCTest, use a chave destinations no xcodebuild para especificar o simulador. O Travis CI suporta a execução de simuladores iOS em imagens macOS sem configuração adicional — o simulador inicia automaticamente ao executar o comando de teste xcodebuild test.

Configuração do .travis.yml para projetos Android

Para projetos Android, o .travis.yml é configurado com a linguagem android e componentes SDK especificados através da chave android. O Travis CI fornece imagens Linux com Java JDK 17 pré-instalado, Gradle e Android SDK básico. Níveis de API adicionais e build-tools são instalados via sdkmanager na fase before_install.

Uma otimização chave para builds Android é o cache dos diretórios .gradle e .m2. O Travis CI suporta cache através da chave cache, reduzindo o tempo de instalação de dependências de 120 segundos para 10–15 segundos em builds subsequentes. Especifique caminhos de cache para Gradle wrapper e Android Gradle Plugin.

yaml
# .travis.yml para aplicação Android
language: android
dist: jammy
jdk: oraclejdk17
android:
  components:
    - tools
    - platform-tools
    - build-tools-34.0.0
    - android-34
    - extra-google-m2repository
before_script:
  - yes | sdkmanager "platforms;android-34"
script:
  - ./gradlew assembleDebug testDebugUnitTest
cache:
  directories:
    - $HOME/.gradle/caches/
    - $HOME/.gradle/wrapper/

Para executar testes instrumentados em um emulador Android, adicione uma etapa before_script com inicialização do emulador e espera de prontidão. O Travis CI suporta aceleração de hardware KVM em imagens Linux, acelerando significativamente a execução de testes de UI em comparação com a emulação por software.

Integração do Travis CI com GitHub e Bitbucket

Travis CI integra-se com GitHub e Bitbucket através de um aplicativo OAuth que adiciona um webhook ao repositório para notificação automática de novos commits. Após ativar o repositório no Travis CI, todos os pushes e Pull Requests acionam automaticamente um build, e o status (passed, failed, pending) é exibido na interface do GitHub.

A integração com GitHub Pull Request é um recurso chave do Travis CI. O status do build é exibido diretamente no PR, bloqueando a mesclagem em caso de falha nos testes. Configurar a proteção de branch no GitHub junto com o Travis CI garante que apenas código testado chegue ao branch principal.

O Travis CI suporta variáveis de ambiente criptografadas para armazenar tokens do App Store Connect, contas de serviço do Google Play e chaves de assinatura. As variáveis são criptografadas via CLI travis encrypt e adicionadas ao .travis.yml, garantindo a transferência segura de dados sensíveis para o build.

Trabalho com arquivos criptografados

Arquivos criptografados no Travis CI permitem armazenar perfis de provisionamento e certificados iOS em um repositório GitHub sem risco de vazamento. O arquivo é criptografado usando o comando travis encrypt-file e descriptografado automaticamente durante a etapa before_install. Esta é a abordagem padrão para equipes que usam Travis CI para entrega de aplicações iOS.

Vantagens e limitações do Travis CI

A principal vantagem do Travis CI são os custos de infraestrutura zero. A equipe não precisa configurar um servidor, instalar software CI/CD ou monitorar sua disponibilidade. Toda a gestão se resume a editar o .travis.yml no repositório. O plano gratuito para repositórios públicos torna o Travis CI uma escolha popular para projetos móveis Open Source.

A limitação do Travis CI é o limite de tempo de build e de trabalhos paralelos nos planos de preços. Para equipes com alta frequência de commits (20+ por dia) e testes de integração longos, os custos de minutos em nuvem podem exceder o custo de manter um servidor Jenkins próprio. O Travis CI também não suporta imagens Docker personalizadas no plano gratuito.

Para desenvolvimento móvel, o Travis CI é adequado para equipes que usam GitHub, têm menos de 10 desenvolvedores e não requerem infraestrutura de build personalizada. Para projetos Enterprise com requisitos de Compliance ou necessidade de compilar em máquinas macOS próprias, o Jenkins continua sendo uma solução mais flexível.

Perguntas frequentes

O que é Travis CI no desenvolvimento de aplicações

Travis CI é uma plataforma CI/CD em nuvem para automatizar a construção, teste e implantação de aplicações móveis. O serviço integra-se com GitHub e Bitbucket, acionando builds a cada push e exibindo o status em Pull Requests para controle de qualidade do código.

Como o Travis CI difere do Jenkins

Travis CI é um serviço em nuvem sem necessidade de gerenciamento de servidores, configurado via .travis.yml. Jenkins é um servidor auto-hospedado com controle total de infraestrutura e sistema de plugins. Travis CI é mais simples de configurar, Jenkins é mais flexível para cenários empresariais complexos.

Como configurar .travis.yml para build iOS

Especifique language: swift, a versão do Xcode via osx_image, instale CocoaPods e Fastlane no before_install. No script, adicione comandos fastlane scan para testes e fastlane gym para build. Criptografe certificados usando travis encrypt-file para armazenamento seguro no repositório.

Como configurar .travis.yml para build Android

Especifique language: android, JDK 17 e componentes do Android SDK através da chave android. Adicione cache dos diretórios .gradle via cache. No script, execute tarefas Gradle: ./gradlew assembleDebug e testDebugUnitTest. Para testes de UI, configure a inicialização do emulador no before_script.

O Travis CI é adequado para projetos comerciais

Sim, Travis CI é adequado para projetos comerciais de pequeno e médio porte. Os planos pagos incluem builds paralelos, repositórios privados e suporte prioritário. Para Enterprise com requisitos de Compliance, recomenda-se Jenkins ou GitLab CI com infraestrutura própria.

Resumo

  • Travis CI — uma plataforma CI/CD em nuvem para automatizar construção, teste e implantação de aplicações móveis
  • .travis.yml — um único arquivo de configuração YAML que define o ambiente e os estágios de build
  • Build Matrix — execução paralela de builds com diferentes versões de SO e SDK para testes abrangentes
  • Configuração iOS — imagens macOS com Xcode, Fastlane, CocoaPods e certificados criptografados para assinatura
  • Configuração Android — imagens Linux com Android SDK, cache Gradle e suporte a emuladores KVM
  • Integração — suporte nativo para GitHub e Bitbucket com status de build em Pull Requests
  • Para equipes pequenas, Travis CI é preferível ao Jenkins devido à ausência de custos de infraestrutura

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