Travis CI: cos'è, funzionalità e utilizzo nello sviluppo di applicazioni

Autore: IT Sectr Pubblicato: 2026-04-14 Tempo di lettura: 9 min

Travis CI è una piattaforma CI/CD cloud che automatizza la creazione, il test e il deploy di applicazioni mobili senza gestire la propria infrastruttura. Il servizio si integra direttamente con GitHub e Bitbucket, attivando build a ogni push o Pull Request. Secondo Travis CI, 2025, la piattaforma elabora oltre 10 milioni di build al mese. La configurazione avviene tramite un singolo file YAML .travis.yml nella radice del repository.

Punti chiave

  • Travis CI — una piattaforma CI/CD cloud per automatizzare la creazione e il test di app mobili
  • .travis.yml — un file di configurazione YAML che definisce l'ambiente, le fasi di build e il deploy
  • Build Matrix — esecuzione parallela di build su diverse versioni di OS, linguaggio o SDK
  • Integrazione — supporto nativo per GitHub, Bitbucket e stati delle Pull Request di GitHub
  • Infrastruttura cloud — ambienti macOS e Linux preinstallati con Xcode e Android SDK

Cos'è Travis CI e come funziona

Travis CI è un servizio di integrazione continua basato su cloud che esegue automaticamente build e test quando vengono apportate modifiche a un repository Git. Dopo aver collegato un repository tramite GitHub o Bitbucket, Travis CI tiene traccia di nuovi commit, Pull Request e creazione di tag, eseguendo la configurazione da .travis.yml in un ambiente virtuale isolato.

Il processo di lavoro di Travis CI si compone di tre fasi: trigger (push o Pull Request), configurazione dell'ambiente (install) ed esecuzione delle attività (script). Il servizio seleziona automaticamente una macchina virtuale con un set di strumenti preinstallati — immagini macOS con Xcode per iOS, immagini Linux con Android SDK e livelli API per Android.

Travis CI supporta Build Matrix — un meccanismo di esecuzione parallela della stessa configurazione con parametri diversi. Ad esempio, puoi testare simultaneamente un'applicazione iOS su Xcode 15 e Xcode 16, e un'applicazione Android su API 33 e API 34. Ogni combinazione viene eseguita su una macchina virtuale separata, riducendo il tempo di validazione complessivo.

Travis CI vs altri sistemi CI/CD per progetti mobili

Travis CI si differenzia da Jenkins e GitLab CI per l'attenzione alla semplicità di configurazione e l'assenza di costi infrastrutturali. Jenkins richiede installazione su un server dedicato e configurazione di agent, GitLab CI richiede un'istanza GitLab autogestita o cloud. Travis CI funziona in abbonamento e non richiede amministrazione di server.

Rispetto a GitHub Actions, Travis CI fornisce immagini macOS più mature per build iOS e documentazione dettagliata sullo sviluppo mobile. GitHub Actions, d'altra parte, è meglio integrato con l'ecosistema GitHub e dispone di più azioni community per attività specifiche di build mobile.

Per lo sviluppo Android, Travis CI offre immagini pronte con Android SDK 34, Gradle 8 e supporto per emulatori. Il tempo di avvio del build è di 45–90 secondi, paragonabile ai concorrenti. Il limite principale è il limite di build parallele, che dipende dal piano tariffario.

Architettura e principio di funzionamento di Travis CI

L'architettura di Travis CI è costruita su microservizi che gestiscono la coda dei lavori, l'allocazione delle macchine virtuali e l'elaborazione dei risultati. Quando riceve un webhook da GitHub, la piattaforma inserisce il lavoro in una coda, trova una macchina virtuale disponibile con l'immagine linguistica appropriata ed esegue i comandi da .travis.yml.

Ogni build viene eseguita in un ambiente isolato con un'immagine OS pulita. Travis CI supporta tre tipi di ambiente: Ubuntu Linux (standard), macOS (per build iOS e macOS) e Windows (per .NET e UWP). Per i progetti mobili, il supporto di immagini macOS con Xcode e Fastlane preinstallati è fondamentale.

Il ciclo di vita del build include fasi: before_install (configurazione del sistema), install (installazione delle dipendenze), before_script (preparazione dei test), script (esecuzione di test e build), after_script (pulizia). Ogni fase è opzionale e configurabile nel file YAML.

Build Matrix in Travis CI

Build Matrix permette di testare un'applicazione con diverse versioni di linguaggio, SDK o ambiente in build parallele. La matrice viene definita tramite le chiavi language, os, env e include la generazione automatica di tutte le combinazioni possibili. Per i progetti mobili, è utile per verificare la compatibilità con diverse versioni di iOS o Android API.

Quando si utilizza la matrice, Travis CI avvia una macchina virtuale separata per ogni combinazione. Ciò aumenta il consumo totale di minuti di build, ma è criticamente importante per i progetti che supportano più versioni di OS. Limita la dimensione della matrice a 4–6 combinazioni per un rapporto ottimale tra copertura e costo.

Sintassi di .travis.yml

Il file .travis.yml utilizza il formato YAML ed è composto da chiavi radice: language, os, dist (versione della distribuzione), before_install, install, script e deploy. Ogni chiave può contenere una stringa, un array di comandi o un dizionario per configurazioni più complesse. Travis CI elabora le chiavi in ordine rigoroso, garantendo la prevedibilità dell'esecuzione del build.

Per i progetti iOS, la chiave osx_image con la versione di Xcode è obbligatoria, ad esempio xcode15.2. Per Android — la chiave android con componenti SDK. Travis CI supporta la chiave deploy con provider per il caricamento automatico degli artefatti su App Store Connect, Google Play, Firebase o GitHub Releases dopo un build riuscito.

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

Configurazione di .travis.yml per progetti iOS

Per i progetti iOS, .travis.yml deve specificare objective-c o swift come linguaggio, la versione di Xcode tramite osx_image e l'installazione delle dipendenze tramite CocoaPods o Swift Package Manager. Travis CI supporta tutte le versioni attuali di Xcode, incluso Xcode 16 con iOS 18 SDK, consentendo di testare le applicazioni sulle ultime API.

Un passo importante è la gestione dei certificati per la firma del codice. Utilizza i file crittografati di Travis CI per memorizzare profili di provisioning e certificati nel repository. Fastlane Match è supportato anche tramite variabili d'ambiente TRAVIS crittografate, semplificando la configurazione della firma per build AdHoc e App Store.

yaml
# .travis.yml per applicazione iOS con 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

Per progetti con test UI su XCTest, utilizza la chiave destinations in xcodebuild per specificare il simulatore. Travis CI supporta l'esecuzione di simulatori iOS su immagini macOS senza configurazione aggiuntiva — il simulatore si avvia automaticamente quando si esegue il comando di test xcodebuild test.

Configurazione di .travis.yml per progetti Android

Per i progetti Android, .travis.yml viene configurato con il linguaggio android e i componenti SDK specificati tramite la chiave android. Travis CI fornisce immagini Linux con Java JDK 17 preinstallato, Gradle e Android SDK di base. Livelli API aggiuntivi e build-tools vengono installati tramite sdkmanager nella fase before_install.

Un'ottimizzazione chiave per le build Android è la memorizzazione nella cache delle directory .gradle e .m2. Travis CI supporta la cache tramite la chiave cache, riducendo il tempo di installazione delle dipendenze da 120 secondi a 10–15 secondi nelle build successive. Specifica i percorsi della cache per Gradle wrapper e Android Gradle Plugin.

yaml
# .travis.yml per applicazione 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/

Per eseguire test strumentati su un emulatore Android, aggiungi una fase before_script con avvio dell'emulatore e attesa di prontezza. Travis CI supporta l'accelerazione hardware KVM sulle immagini Linux, accelerando significativamente l'esecuzione dei test UI rispetto all'emulazione software.

Integrazione di Travis CI con GitHub e Bitbucket

Travis CI si integra con GitHub e Bitbucket tramite un'applicazione OAuth che aggiunge un webhook al repository per la notifica automatica di nuovi commit. Dopo aver attivato il repository in Travis CI, tutti i push e le Pull Request attivano automaticamente un build, e lo stato (passed, failed, pending) viene visualizzato nell'interfaccia di GitHub.

L'integrazione con GitHub Pull Request è una funzionalità chiave di Travis CI. Lo stato del build viene visualizzato direttamente nella PR, bloccando l'unione in caso di test falliti. La configurazione della protezione del branch in GitHub insieme a Travis CI garantisce che solo il codice testato raggiunga il branch principale.

Travis CI supporta variabili d'ambiente crittografate per memorizzare token di App Store Connect, account di servizio Google Play e chiavi di firma. Le variabili vengono crittografate tramite la CLI travis encrypt e aggiunte a .travis.yml, garantendo il trasferimento sicuro dei dati sensibili al build.

Lavorare con file crittografati

I file crittografati di Travis CI consentono di memorizzare profili di provisioning e certificati iOS in un repository GitHub senza rischio di perdite. Il file viene crittografato con il comando travis encrypt-file e decrittografato automaticamente durante la fase before_install. Questo è l'approccio standard per i team che utilizzano Travis CI per la distribuzione di app iOS.

Vantaggi e limiti di Travis CI

Il principale vantaggio di Travis CI sono i costi infrastrutturali zero. Il team non deve configurare un server, installare software CI/CD o monitorarne la disponibilità. Tutta la gestione si riduce alla modifica di .travis.yml nel repository. Il piano gratuito per repository pubblici rende Travis CI una scelta popolare per progetti mobili Open Source.

Il limite di Travis CI è il limite di tempo di build e di lavori paralleli nei piani tariffari. Per team con alta frequenza di commit (20+ al giorno) e lunghi test di integrazione, i costi dei minuti cloud possono superare il costo di mantenimento di un server Jenkins dedicato. Travis CI inoltre non supporta immagini Docker personalizzate nel piano gratuito.

Per lo sviluppo mobile, Travis CI è adatto a team che utilizzano GitHub, hanno meno di 10 sviluppatori e non richiedono infrastruttura di build personalizzata. Per progetti Enterprise con requisiti di conformità o necessità di compilare su macchine macOS personalizzate, Jenkins rimane una soluzione più flessibile.

Domande frequenti

Cos'è Travis CI nello sviluppo di applicazioni

Travis CI è una piattaforma CI/CD cloud per automatizzare la creazione, il test e il deploy di applicazioni mobili. Il servizio si integra con GitHub e Bitbucket, attivando build a ogni push e visualizzando lo stato nelle Pull Request per il controllo qualità del codice.

In cosa Travis CI si differenzia da Jenkins

Travis CI è un servizio cloud senza necessità di gestione server, configurato tramite .travis.yml. Jenkins è un server auto-ospitato con controllo completo dell'infrastruttura e un sistema di plugin. Travis CI è più semplice da configurare, Jenkins è più flessibile per scenari aziendali complessi.

Come configurare .travis.yml per build iOS

Specifica language: swift, la versione di Xcode tramite osx_image, installa CocoaPods e Fastlane in before_install. In script, aggiungi i comandi fastlane scan per i test e fastlane gym per il build. Crittografa i certificati usando travis encrypt-file per la conservazione sicura nel repository.

Come configurare .travis.yml per build Android

Specifica language: android, JDK 17 e componenti Android SDK tramite la chiave android. Aggiungi la cache delle directory .gradle tramite cache. In script, esegui attività Gradle: ./gradlew assembleDebug e testDebugUnitTest. Per i test UI, configura l'avvio dell'emulatore in before_script.

Travis CI è adatto a progetti commerciali

Sì, Travis CI è adatto a progetti commerciali di piccole e medie dimensioni. I piani a pagamento includono build parallele, repository privati e supporto prioritario. Per Enterprise con requisiti di conformità, si consiglia Jenkins o GitLab CI con infrastruttura dedicata.

Riepilogo

  • Travis CI — una piattaforma CI/CD cloud per automatizzare creazione, test e deploy di applicazioni mobili
  • .travis.yml — un singolo file di configurazione YAML che definisce l'ambiente e le fasi di build
  • Build Matrix — esecuzione parallela di build con diverse versioni di OS e SDK per test completi
  • Configurazione iOS — immagini macOS con Xcode, Fastlane, CocoaPods e certificati crittografati per la firma
  • Configurazione Android — immagini Linux con Android SDK, cache Gradle e supporto emulatori KVM
  • Integrazione — supporto nativo per GitHub e Bitbucket con stato build nelle Pull Request
  • Per team piccoli, Travis CI è preferibile a Jenkins per l'assenza di costi infrastrutturali

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche