AWS CodeCommit、AWS CodePipeline、AWS Device Farm を使用して iOS アプリを構築してテストする - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CodeCommit、AWS CodePipeline、AWS Device Farm を使用して iOS アプリを構築してテストする

Abdullahi Olaoye、Amazon Web Services

概要

注意: AWS CodeCommit は新規顧客には利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS CodeCommit 引き続き使用できます。詳細はこちら

このパターンでは、AWS CodePipeline を使用して AWS 上の実際のデバイスで iOS アプリケーションを構築してテストする、継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインを作成する手順の概要を示しています。このパターンでは、AWS CodeCommit を使用してアプリケーションコードを保存し、Jenkins のオープンソースツールを使用して iOS アプリケーションを構築し、AWS Device Farm を使用して構築したアプリケーションを実際のデバイス上でテストします。これらの 3 つのフェーズは、AWS CodePipeline を使用してパイプラインにまとめてオーケストレーションされます。

このパターンは、AWS DevOps ブログの「AWS DevOps とモバイルサービスを使用した iOS および iPadOS アプリの構築とテスト」の投稿に基づいています。詳細な手順については、このブログ記事を参照してください。

前提条件と制限

前提条件

  • アクティブな AWS アカウント

  • Apple 開発者アカウント

  • ビルドサーバー (macOS)

  • Xcode バージョン 11.3 (ビルドサーバーにインストールしてセットアップ済み)

  • AWS コマンドラインインターフェイス (AWS CLI) をインストールして設定済み

  • Git の基本的な知識

機能制限

  • アプリケーションビルドサーバーは macOS を実行していることが必要です。

  • CodePipeline が構築を開始するためにリモートで接続できるように、ビルドサーバーにはパブリック IP アドレスが必要です。

アーキテクチャ

ソーステクノロジースタック

  • シミュレータを使用するか、物理デバイス上で手動テストを行うオンプレミスの iOS アプリケーション構築プロセス

ターゲットテクノロジースタック

  • アプリケーションのソースコードを保存するための AWS CodeCommit リポジトリ 

  • Xcode を使用してアプリケーションを構築するための Jenkins サーバー

  • 実際のデバイスでアプリケーションをテストするための AWS Device Farm デバイスプール

ターゲット アーキテクチャ

ユーザーがソースリポジトリに変更をコミットすると、パイプライン (AWS CodePipeline) はソースリポジトリからコードを取得し、Jenkins ビルドを開始して、アプリケーションコードを Jenkins に渡します。ビルドの完了後、パイプラインはビルドアーティファクトを取得し、AWS Device Farm ジョブを開始してデバイスプールに対してアプリケーションをテストします。

CI/CD パイプラインは AWS CodePipeline を使用して、実際のデバイスで iOS アプリケーションを構築およびテストします。

ツール

  • AWS CodePipeline は、完全マネージド型の継続的デリバリーサービスであり、リリースパイプラインを自動化して、アプリケーションとインフラストラクチャを迅速かつ確実に更新できます。CodePipeline はお客様が定義したリリースモデルに基づき、コードチェンジがあった場合のフェーズの構築、テスト、およびデプロイを自動化します。

  • AWS CodeCommit は、セキュアな Git ベースのリポジトリをホストするフルマネージド型のソースコントロールサービスです。これにより、セキュアで拡張性の高いエコシステムで、チームによるコードの共同作業が簡単になります。CodeCommit を使用することにより、独自のソース管理システムを運用したり、そのインフラストラクチャをスケールしたりする必要がなくなります。

  • AWS Device Farm は、テストインフラストラクチャをプロビジョニングおよび管理することなく、幅広いデスクトップブラウザと実際のモバイルデバイスでテストすることで、ウェブおよびモバイルアプリケーションの品質を向上させるアプリケーションテストサービスです。

  • Jenkins は、デベロッパーがソフトウェアを確実に構築、テスト、デプロイできるようにするオープンソースのオートメーションサーバーです。

エピック

タスク説明必要なスキル

macOS を実行しているビルドサーバーに Jenkins をインストールします。 

Jenkins を使用してアプリケーションを構築するので、最初に Jenkins をビルドサーバーにインストールする必要があります。このタスクとそれ以降のタスクの詳細な手順については、このパターンの最後にある関連リソースセクションの AWS ブログ記事「Building and testing iOS and iPadOS apps with AWS DevOps and mobile services and other resources」を参照してください。

DevOps

Jenkins を設定します。

画面上の指示に従って Jenkins を設定します。 

DevOps

Jenkins 用の AWS CodePipeline プラグインをインストールします。

Jenkins が AWS CodePipeline サービスとやり取りできるようにするには、このプラグインを Jenkins サーバーにインストールする必要があります。 

DevOps

自由形式の Jenkins プロジェクトを作成します。

Jenkins で、自由形式のプロジェクトを作成します。トリガーやその他のビルド設定オプションを指定するようにプロジェクトを設定します。

DevOps
タスク説明必要なスキル

Device Farm プロジェクトを作成します。

AWS Device Farm コンソールを開きます。テスト用のプロジェクトとデバイスプールを作成します。手順については、ブログ記事を参照してください。

開発者
タスク説明必要なスキル

CodeCommit リポジトリを作成します。

ソースコードを保存するリポジトリを作成します。

DevOps

アプリケーションコードをリポジトリにコミットします。

作成した CodeCommit リポジトにリコネクトします。  コードをローカルマシンからリポジトリにプッシュします。

DevOps
タスク説明必要なスキル

AWS CodePipeline でパイプラインを作成します。

AWS CodePipeline コンソールを使用してパイプラインを作成します。パイプラインは CI/CD プロセスのすべてのフェーズをオーケストレーションします。手順については、AWS ブログ記事「Building and testing iOS and iPadOS apps with AWS DevOps and mobile services」を参照してください。

DevOps

パイプラインにテストステージを追加します。

テストステージを追加して AWS Device Farm と統合するには、パイプラインを編集します。

DevOps

パイプラインを開始します。

パイプラインと CI/CD プロセスを開始するには、Release change を選択します。

DevOps
タスク説明必要なスキル

テスト結果を確認します。

AWS Device Farm コンソールで、作成したプロジェクトを選択し、テストの結果を確認します。コンソールには、各テストの詳細が表示されます。

開発者

関連リソース

このパターンのステップバイステップの説明

AWS Device Farm を設定する

ソースリポジトリを設定する

パイプラインを設定する

追加リソース