Travis CI:その概要、機能、およびアプリケーション開発での活用

著者: IT Sectr 公開日: 2026-04-14 読了時間: 9 分

Travis CIは、独自のインフラストラクチャを管理することなく、モバイルアプリケーションのビルド、テスト、デプロイを自動化するクラウドCI/CDプラットフォームです。このサービスはGitHubおよびBitbucketと直接統合し、プッシュまたはPull Requestのたびにビルドをトリガーします。Travis CI、2025によると、このプラットフォームは毎月1000万以上のビルドを処理しています。設定は、リポジトリルートの単一のYAMLファイル.travis.ymlを介して行われます。

重要ポイント

  • Travis CI — モバイルアプリのビルドとテストを自動化するクラウドCI/CDプラットフォーム
  • .travis.yml — 環境、ビルド段階、デプロイを定義するYAML設定ファイル
  • Build Matrix — 異なるOS、言語、SDKバージョンにわたるビルドの並列実行
  • 統合 — GitHub、Bitbucket、およびGitHub Pull Requestステータスのネイティブサポート
  • クラウドインフラストラクチャ — XcodeおよびAndroid SDKがプリインストールされたmacOSおよびLinux環境

Travis CIとは何か、その仕組み

Travis CIは、Gitリポジトリに変更が加えられたときに自動的にビルドとテストを実行するクラウドベースの継続的インテグレーションサービスです。GitHubまたはBitbucketを介してリポジトリを接続すると、Travis CIは新しいコミット、Pull Request、タグ作成を追跡し、隔離された仮想環境で.travis.ymlの設定を実行します。

Travis CIのワークフローは、トリガー(プッシュまたはPull Request)、環境セットアップ(install)、タスク実行(script)の3つの段階で構成されています。サービスは自動的に、プリインストールされたツールセットを備えた仮想マシンを選択します。iOS用にはXcodeを備えたmacOSイメージ、Android用にはAndroid SDKとAPIレベルを備えたLinuxイメージが利用可能です。

Travis CIはBuild Matrixをサポートしています。これは、異なるパラメータで同じ設定を並列実行するメカニズムです。たとえば、iOSアプリケーションをXcode 15とXcode 16で同時にテストし、AndroidアプリケーションをAPI 33とAPI 34でテストできます。各組み合わせは個別の仮想マシンで実行され、全体的な検証時間を短縮します。

Travis CI vs モバイルプロジェクト向け他のCI/CDシステム

Travis CIは、セットアップの容易さとインフラストラクチャコストの不在に焦点を当てている点でJenkinsやGitLab CIとは異なります。Jenkinsは独自サーバーへのインストールとエージェント設定が必要で、GitLab CIは自己管理型またはクラウドのGitLabインスタンスが必要です。Travis CIはサブスクリプション制で動作し、サーバー管理は不要です。

GitHub Actionsと比較して、Travis CIはiOSビルド向けにより成熟したmacOSイメージと詳細なモバイル開発ドキュメントを提供します。一方、GitHub ActionsはGitHubエコシステムとの統合が優れており、特定のモバイルビルドタスク向けのコミュニティアクションが豊富です。

Android開発向けには、Travis CIはAndroid SDK 34、Gradle 8、エミュレータサポートを備えた既成イメージを提供します。ビルド起動時間は45~90秒で、競合他社と同等です。主な制限は並列ビルド数の制限で、これは料金プランに依存します。

Travis CIのアーキテクチャと動作原理

Travis CIのアーキテクチャは、ジョブキュー、仮想マシン割り当て、結果処理を管理するマイクロサービス上に構築されています。GitHubからwebhookを受信すると、プラットフォームはジョブをキューに入れ、適切な言語イメージを持つ利用可能な仮想マシンを見つけ、.travis.ymlのコマンドを実行します。

各ビルドは、クリーンなOSイメージを使用した隔離された環境で実行されます。Travis CIは、Ubuntu Linux(標準)、macOS(iOSおよびmacOSビルド用)、Windows(.NETおよびUWP用)の3つの環境タイプをサポートしています。モバイルプロジェクトにとって、XcodeとFastlaneがプリインストールされたmacOSイメージのサポートは重要です。

ビルドライフサイクルには、before_install(システム設定)、install(依存関係のインストール)、before_script(テスト準備)、script(テストとビルドの実行)、after_script(クリーンアップ)のフェーズが含まれます。各フェーズはオプションで、YAMLファイルで設定可能です。

Travis CIのBuild Matrix

Build Matrixを使用すると、並列ビルドで異なる言語、SDK、環境バージョンを使用してアプリケーションをテストできます。マトリックスはlanguage、os、envキーを介して定義され、可能なすべての組み合わせの自動生成を含みます。モバイルプロジェクトでは、異なるiOSバージョンやAndroid APIとの互換性を確認するのに便利です。

マトリックスを使用する場合、Travis CIは各組み合わせに対して個別の仮想マシンを起動します。これにより全体的なビルド分数の消費が増加しますが、複数のOSバージョンをサポートするプロジェクトには非常に重要です。最適なカバレッジ対コスト比を得るには、マトリックスサイズを4~6の組み合わせに制限してください。

.travis.ymlの構文

.travis.ymlファイルはYAML形式を使用し、language、os、dist(ディストリビューション版)、before_install、install、script、deployのルートキーで構成されます。各キーには、文字列、コマンド配列、またはより複雑な設定のための辞書を含めることができます。Travis CIはキーを厳密な順序で処理し、ビルド実行の予測可能性を保証します。

iOSプロジェクトの場合、Xcodeバージョンを指定するosx_imageキーが必須です(例:xcode15.2)。Androidの場合は、SDKコンポーネントを指定するandroidキーが必要です。Travis CIは、ビルド成功後にApp Store Connect、Google Play、Firebase、またはGitHub Releasesへの自動アーティファクトアップロードのためのプロバイダーを備えたdeployキーをサポートしています。

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

iOSプロジェクト向け.travis.ymlの設定

iOSプロジェクトの場合、.travis.ymlは言語としてobjective-cまたはswift、osx_imageによるXcodeバージョン、CocoaPodsまたはSwift Package Managerによる依存関係のインストールを指定する必要があります。Travis CIは、iOS 18 SDKを備えたXcode 16を含むすべての最新Xcodeバージョンをサポートしており、最新のAPIでアプリケーションをテストできます。

重要なステップは、コード署名のための証明書の管理です。Travis CIの暗号化ファイルを使用して、プロビジョニングプロファイルと証明書をリポジトリに保存します。Fastlane Matchは、暗号化されたTRAVIS環境変数を介してもサポートされており、AdHocおよびApp Storeビルドの署名設定を簡素化します。

yaml
# Fastlaneを使用したiOSアプリケーション用.travis.yml
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

XCTestでのUIテストを含むプロジェクトの場合、xcodebuildでdestinationsキーを使用してシミュレータを指定します。Travis CIは追加設定なしでmacOSイメージ上でiOSシミュレータを実行できます。シミュレータはxcodebuild testコマンドの実行時に自動的に起動します。

Androidプロジェクト向け.travis.ymlの設定

Androidプロジェクトの場合、.travis.ymlはandroid言語とandroidキーを介して指定されたSDKコンポーネントで設定されます。Travis CIは、Java JDK 17、Gradle、基本Android SDKがプリインストールされたLinuxイメージを提供します。追加のAPIレベルとbuild-toolsは、before_installフェーズでsdkmanagerを介してインストールされます。

Androidビルドの重要な最適化は、.gradleディレクトリと.m2ディレクトリのキャッシュです。Travis CIはcacheキーを介したキャッシュをサポートしており、後続のビルドでの依存関係インストール時間を120秒から10~15秒に短縮します。Gradle wrapperとAndroid Gradle Pluginのキャッシュパスを指定してください。

yaml
# Androidアプリケーション用.travis.yml
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/

Androidエミュレータでインストルメント化テストを実行するには、エミュレータの起動と準備完了待機を含むbefore_script段階を追加します。Travis CIはLinuxイメージでKVMハードウェアアクセラレーションをサポートしており、ソフトウェアエミュレーションと比較してUIテストの実行を大幅に高速化します。

Travis CIとGitHubおよびBitbucketの統合

Travis CIは、新しいコミットの自動通知のためにリポジトリにwebhookを追加するOAuthアプリケーションを介してGitHubおよびBitbucketと統合します。Travis CIでリポジトリをアクティブ化すると、すべてのプッシュとPull Requestが自動的にビルドをトリガーし、ステータス(passed、failed、pending)がGitHubインターフェースに表示されます。

GitHub Pull Requestとの統合は、Travis CIの主要な機能です。ビルドステータスはPRに直接表示され、テスト失敗時のマージをブロックします。GitHubでのブランチ保護をTravis CIとともに設定することで、テスト済みのコードのみがメインブランチに到達することが保証されます。

Travis CIは、App Store Connectトークン、Google Playサービスアカウント、署名キーを保存するための暗号化環境変数をサポートしています。変数はtravis encrypt CLIを介して暗号化され、.travis.ymlに追加され、機密データのビルドへの安全な転送を保証します。

暗号化ファイルの操作

Travis CIの暗号化ファイルを使用すると、漏洩のリスクなくiOSプロビジョニングプロファイルと証明書をGitHubリポジトリに保存できます。ファイルはtravis encrypt-fileコマンドで暗号化され、before_install段階で自動的に復号化されます。これはTravis CIを使用してiOSアプリを配信するチームの標準的なアプローチです。

Travis CIの利点と制限

Travis CIの主な利点は、インフラストラクチャコストがゼロであることです。チームはサーバーのセットアップ、CI/CDソフトウェアのインストール、可用性の監視を行う必要がありません。すべての管理は、リポジトリ内の.travis.ymlの編集に集約されます。パブリックリポジトリ向けの無料プランにより、Travis CIはオープンソースのモバイルプロジェクトで人気のある選択肢となっています。

Travis CIの制限は、料金プランにおけるビルド時間制限と並列ジョブ制限です。コミット頻度が高く(1日20回以上)、統合テストが長いチームの場合、クラウド分数のコストが独自のJenkinsサーバーを維持するコストを超える可能性があります。また、Travis CIは無料プランではカスタムDockerイメージをサポートしていません。

モバイル開発では、Travis CIはGitHubを使用し、10名未満の開発者で、カスタムビルドインフラストラクチャを必要としないチームに適しています。コンプライアンス要件があるエンタープライズプロジェクトや、独自のmacOSマシンでビルドする必要がある場合には、Jenkinsの方が柔軟なソリューションです。

よくある質問

アプリケーション開発におけるTravis CIとは

Travis CIは、モバイルアプリケーションのビルド、テスト、デプロイを自動化するクラウドCI/CDプラットフォームです。このサービスはGitHubおよびBitbucketと統合し、プッシュのたびにビルドをトリガーし、コード品質管理のためにPull Requestにステータスを表示します。

Travis CIとJenkinsの違いは何ですか

Travis CIはサーバー管理が不要なクラウドサービスで、.travis.ymlを介して設定します。Jenkinsは完全なインフラストラクチャ制御とプラグインシステムを備えたセルフホスト型サーバーです。Travis CIはセットアップが簡単で、Jenkinsは複雑なエンタープライズシナリオに柔軟に対応します。

iOSビルド用に.travis.ymlを設定する方法

language: swiftを指定し、osx_imageでXcodeバージョン、before_installでCocoaPodsとFastlaneをインストールします。scriptには、テスト用のfastlane scanとビルド用のfastlane gymコマンドを追加します。リポジトリでの安全な保存のために、travis encrypt-fileを使用して証明書を暗号化します。

Androidビルド用に.travis.ymlを設定する方法

language: android、JDK 17、androidキーを介したAndroid SDKコンポーネントを指定します。cacheを介して.gradleディレクトリのキャッシュを追加します。scriptでGradleタスク(./gradlew assembleDebugおよびtestDebugUnitTest)を実行します。UIテストの場合は、before_scriptでエミュレータの起動を設定します。

Travis CIは商用プロジェクトに適していますか

はい、Travis CIは中小規模の商用プロジェクトに適しています。有料プランには並列ビルド、プライベートリポジトリ、優先サポートが含まれます。コンプライアンス要件のあるエンタープライズの場合は、独自インフラストラクチャを持つJenkinsまたはGitLab CIが推奨されます。

まとめ

  • Travis CI — モバイルアプリケーションのビルド、テスト、デプロイを自動化するクラウドCI/CDプラットフォーム
  • .travis.yml — 環境とビルド段階を定義する単一のYAML設定ファイル
  • Build Matrix — 包括的なテストのための異なるOSおよびSDKバージョンでの並列ビルド実行
  • iOS設定 — Xcode、Fastlane、CocoaPods、および署名用の暗号化証明書を備えたmacOSイメージ
  • Android設定 — Android SDK、Gradleキャッシュ、KVMエミュレータサポートを備えたLinuxイメージ
  • 統合 — Pull Requestのビルドステータスを含むGitHubおよびBitbucketのネイティブサポート
  • 小規模チームの場合、インフラストラクチャコストが不要なため、Travis CIはJenkinsより優先されます

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください