GitHub が新しいランナー機能で iOS アプリのテスト時間を 60% 短縮

GitHub ブログによると、GitHub は Apple Silicon ランナーの使用により iOS アプリケーションのテスト時間を大幅に短縮し、継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインの大幅な強化を発表した。

GitHub ActionsとApple Siliconの統合

GitHub iOS チームと GitHub Actions チームは共同作業により、Apple Silicon を搭載した macOS ランナーをワークフローに統合しました。この統合により、チームは開発者コミュニティにリリースされるずっと前に、新しいランナー イメージとハードウェアをテストできるようになりました。パブリック リポジトリで無料で利用できる M1 macOS ランナーの導入は、パフォーマンスを重視するジョブにとって画期的な出来事でした。

テスト効率の向上

これまで、GitHub iOS チームは単一のワークフローに依存してコードベース全体のビルドとテストを行っていましたが、このプロセスは完了までに 38 分かかっていました。チームは、このプロセスを迅速化するために Apple Silicon の計算能力を活用することにしました。M1 macOS ランナーに切り替え、テスト スイートをモジュールごとに個別のジョブに分割することで、チームはテスト時間を 38 分からわずか 15 分へと 60% 短縮することができました。

このモジュール方式により、フィードバックが速くなり、特定のモジュール内の問題を簡単に特定して解決できます。一部の小さなモジュールでは、わずか 2 ~ 3 分でテストが完了し、開発者の生産性が大幅に向上しました。

モノリスを分解する

Apple Silicon ランナーへの移行には、モノリシックなビルドとテストのプロセスを、より小さな独立したジョブに分割することが必要でした。このきめ細かなアプローチにより、フィードバック ループが高速化され、問題が迅速に特定されるようになり、開発プロセス全体の効率が向上しました。

各ビルド リクエストは GitHub Actions によって処理され、ワー​​クフローを実行するために必要な仮想マシンが準備されます。この合理化されたプロセスにより、CI ジョブが利用可能なリソース全体に効率的に分散されます。

CI パフォーマンスの分析

xcodebuild のテストなしのビルド機能とビルドなしのテスト機能を使用して、各モジュールの CI プロセスを個別のビルド ステップとテスト ステップに分割することで、さらに最適化が行われました。これにより、チームは長時間実行されるテストを特定し、パフォーマンスを向上させるために最適化することができました。

Apple Siliconのメリット

Apple Silicon には、ビルド パフォーマンスの向上、信頼性の向上、すべての Apple プラットフォームでのネイティブ テストなど、数多くの利点があります。クロスコンパイルやエミュレーションの問題を回避することで、GitHub iOS チームは最新バージョンの iOS、iPadOS、watchOS、tvOS との互換性を確保できます。同時実行ランナーを利用できることで、チームの並列テスト実行能力がさらに強化されます。

macOSランナーを使い始める

GitHub でホストされている macOS ランナーには、ワークフロー ファイルの YAML 駆動型構成を通じて簡単にアクセスできます。この統合により、開発チームは Apple Silicon のパワーを活用し、CI/CD プロセスを合理化できます。

これらの機能強化により、GitHub は開発者の生産性と効率性の限界を押し広げ続け、チームがこれまでよりも迅速に高品質のアプリケーションを提供できるようになります。

画像出典: Shutterstock

。 。 。

タグ