UStackUStack
Tophat icon

Tophat

Tophatは、CI成果物からモバイルアプリをワンクリックでインストール・テストできるツールです。ビルド共有、端末/シミュレータへの振り分け、カスタムプロバイダ連携にも対応。

Tophat

Tophatとは?

Tophatは、モバイルアプリをワンクリックでインストールしてテストできるツールです。CI成果物からビルドを配布し、インストールリンクを作成し、コントリビューターがローカルでブランチをクローンしたりビルドしたりしなくても、デバイスやシミュレータでアプリを起動できるように設計されています。

このプロジェクトには、カスタムのビルドおよびキャッシュシステムを統合するための拡張機能とコマンドライン機能も含まれています。Tophatは、インストールURL、Quick Launch、artifact providerを通じてiOSとAndroidの両方のワークフローをサポートし、異なる対象向けの複数のアーティファクトを含められるrecipeにも対応しています。

主な機能

  • CI成果物向けのワンクリックインストールリンク。テスターやコントリビューターはローカルのビルド工程なしでビルドをインストールできます。
  • artifact providerベースのダウンロード。Tophatは組み込みproviderや拡張機能で追加されたproviderからビルドを取得できます。
  • URL、Quick Launch、tophatctlコマンドラインインターフェースなど、複数のリクエスト形式に対応。
  • 1回のリクエストで複数のアーティファクトをまとめられるrecipe。シミュレータ用と実機用で異なるビルドが必要な場合に便利です。
  • インストールフローにカスタムのビルドおよびキャッシュシステムを統合するためのTophatKit SDK拡張。
  • お気に入りアプリ用のQuick Launchショートカット。最新ビルドのダウンロード、アプリアイコンの更新、選択したデバイスでの起動ができます。
  • デバイス固定と設定ベースのカスタマイズ。よく使うデバイスや環境別のツールパスへ素早くアクセスできます。
  • 起動引数のサポート。配信方法はiOSとAndroid向けにドキュメント化されています。

Tophatの使い方

一般的なセットアップは、まずTophatをビルドまたはartifact providerと連携し、ダウンロード可能なアプリビルドを解決できるようにするところから始まります。次に、インストールリンクやQuick Launchエントリを作成するか、tophatctlを使って選択したデバイスやシミュレータへのインストールを実行します。

カスタム基盤を持つチームでは、TophatKit SDKやshell-script providerのオプションを使って、既存のビルドおよびキャッシュシステムに合わせてTophatを適応できます。設定後は、ユーザーがインストールリンクをクリックするか、Tophatからアプリを選ぶだけで、対象デバイスにビルドをダウンロード、インストール、起動できます。

ユースケース

  • QAにCIビルドを共有し、テスターがリンクから特定のアプリバージョンを直接インストールできるようにする。
  • 外部コントリビューターがリポジトリをクローンしたりローカルでアプリをビルドしたりせずに、pull requestをテストできるようにする。
  • リリース工程で対象ごとに異なるアーティファクトが生成される場合、1回のリクエストからシミュレータ用と実機用の別ビルドをインストールする。
  • 多数のプロジェクトやデバイスを切り替える開発者に、よく使うアプリへ素早くアクセスできるようにする。
  • 拡張機能やshell-script providerを通じて、Tophatを社内のカスタムビルドシステムやキャッシュに接続する。

FAQ

Tophatは1つのartifact sourceでしか動作しませんか?
いいえ。説明では、組み込みのartifact providerと、Tophat Extensions経由でインストールできる追加providerが示されています。

Tophatはデバイスとシミュレータの両方に対応していますか?
はい。ドキュメントでは、1回のリクエストに複数のアーティファクトを含められ、選択したdestinationに応じて適切なものをTophatが選べると説明されています。

インストールしたアプリに起動引数を渡せますか?
はい。ソースではインストールURL向けのargumentsクエリパラメータが記載され、iOSとAndroidでのプラットフォーム別の扱いにも触れています。

連携用のコマンドラインオプションはありますか?
はい。ページではtophatctlが参照されており、コマンドラインからartifact providerを一覧表示できると記載されています。

Tophatを使うのにカスタムツールは必須ですか?
必須ではありません。ソースでは組み込みproviderと基本的なHTTPサポートが触れられており、よりカスタマイズされたセットアップ向けに拡張機能も利用できます。

代替案

  • 直接のビルドダウンロードや共有リンクによる手動配布: よりシンプルですが、Tophatのデバイスを考慮したインストールフローやQuick Launch機能はありません。
  • CI artifact viewerやダウンロードポータル: ビルドの取得には便利ですが、通常はデバイスへのワンクリックインストールよりも保存とアクセスに重点があります。
  • モバイルデバイステストプラットフォーム: より広範なE2Eテストスイートで、ビルド配布を含む場合もありますが、一般的にはTophatのようなインストールと起動に特化したワークフローを超えます。
  • カスタムスクリプトや社内配布ツール: 特定のパイプラインには柔軟ですが、標準化されたインストールリンクのワークフローより保守が大変なことが多いです。
Tophat | UStack