チュートリアル: で iOS アプリをテストするパイプラインを作成する AWS Device Farm - AWS CodePipeline

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

チュートリアル: で iOS アプリをテストするパイプラインを作成する AWS Device Farm

AWS CodePipeline を使用して、ソースバケットが変更されるたびにアプリがテストされる継続的な統合フローを簡単に設定できます。このチュートリアルでは、S3 バケットからビルドした iOS アプリをテストするためのパイプラインを作成して設定する方法を示します。パイプラインは、Amazon CloudWatch Events を通じて保存された変更の到着を検出し、Device Farm を使用して構築されたアプリケーションをテストします。

重要

パイプラインの作成の一環として、お客様が提供する S3 アーティファクトバケットがアーティファクト CodePipeline に によって使用されます。(これは S3 ソースアクションに使用されるバケットとは異なります)。S3 アーティファクトバケットがパイプラインのアカウントとは異なるアカウントにある場合は、S3 アーティファクトバケットが によって所有 AWS アカウント されており、安全で信頼できることを確認してください。

重要

この手順でパイプラインに追加するアクションの多くには、パイプラインを作成する前に作成する必要がある AWS リソースが含まれています。ソースアクションの AWS リソースは、パイプラインを作成するのと同じ AWS リージョンに常に作成する必要があります。例えば、米国東部 (オハイオ) リージョンでパイプラインを作成する場合、 CodeCommit リポジトリは米国東部 (オハイオ) リージョンにある必要があります。

パイプラインの作成時にクロスリージョンアクションを追加できます。クロスリージョンアクションの AWS リソースは、アクションを実行する予定のリージョンと同じ AWS リージョンにある必要があります。詳細については、「でクロスリージョンアクションを追加する CodePipeline」を参照してください。

既存の iOS アプリを使用して試してみるか、サンプル iOS アプリを使用できます。

注記

開始する前に

  1. AWS Device Farm コンソールにサインインし、新しいプロジェクトの作成 を選択します。

  2. プロジェクトを選択します。ブラウザで、新しいプロジェクトの URL をコピーします。にはプロジェクト ID URLが含まれています。

  3. プロジェクト ID をコピーしてメモしておきます。でパイプラインを作成するときに使用します CodePipeline。

    プロジェクトURLの例を次に示します。プロジェクト ID を抽出するには、projects/ 後の値をコピーします。この例では、プロジェクト ID は eec4905f-98f8-40aa-9afc-4c1cfexample です。

    https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs

Device Farm テストを使用する CodePipeline ように を設定する (Amazon S3 の例)

  1. バージョニングが有効になっている S3 バケットを作成するか、使用します。「ステップ 1: アプリケーションの S3 ソースバケットを作成する」の手順に従って、S3 バケットを作成します。

  2. バケットの Amazon S3 コンソールで、アップロード を選択し、指示に従って .zip ファイルをアップロードします。

    サンプルアプリケーションは、.zip ファイルにパッケージ化する必要があります。

  3. パイプラインを作成してソースステージを追加するには、以下の手順を実行します。

    1. にサインイン AWS Management Console し、 で CodePipeline コンソールを開きますhttps://console.aws.amazon.com/codepipeline/

    2. パイプラインの作成 を選択します。[Step 1: Choose pipeline settings (ステップ 1: パイプラインの設定の選択)] ページで、[パイプライン名] にパイプラインの名前を入力します。

    3. パイプラインタイプ でV2 を選択します。詳細については、「パイプラインのタイプ」を参照してください。[Next (次へ)] を選択します。

    4. [サービスロール] で、[New service role (新しいサービスロール)] は選択したままにして、[Role name (ロール名)] は変更しません。既存のサービスロール (ある場合) を使用することもできます。

      注記

      2018 年 7 月以前に作成された CodePipeline サービスロールを使用する場合は、Device Farm のアクセス許可を追加する必要があります。これを行うには、IAMコンソールを開き、ロールを見つけてから、ロールのポリシーに次のアクセス許可を追加します。詳細については、「 CodePipeline サービスロールにアクセス許可を追加する」を参照してください。

      { "Effect": "Allow", "Action": [ "devicefarm:ListProjects", "devicefarm:ListDevicePools", "devicefarm:GetRun", "devicefarm:GetUpload", "devicefarm:CreateUpload", "devicefarm:ScheduleRun" ], "Resource": "*" }
    5. [詳細設定] をデフォルト設定のままにし、[次へ] を選択します。

    6. [Step 2: Add source stage] (ステップ 2: ソースステージを追加する) ページの [ソースプロバイダー] で [Amazon S3] を選択します。

    7. [Amazon S3 の場所] に、.zip ファイルのバケット (my-storage-bucket など) とオブジェクトキー (s3-ios-test-1.zip など) を入力します。

    8. [Next (次へ)] を選択します。

  4. [ビルド] で、パイプラインのプレースホルダービルドステージを作成します。これにより、ウィザードでパイプラインを作成することができます。ウィザードを使用して 2 ステージパイプラインを作成した後は、このプレースホルダービルドステージは不要になります。パイプラインが完了した後、この第 2 ステージが削除され、ステップ 5 で新しいテストステージが追加されます。

    1. [ビルドプロバイダ] で、[Jenkins の追加] を選択します。このビルド選択はプレースホルダーです。それは使用されていません。

    2. [プロバイダ名] に名前を入力します。名前はプレースホルダーです。それは使用されていません。

    3. サーバー URLで、テキストを入力します。テキストはプレースホルダーです。それは使用されていません。

    4. [プロジェクト名] に名前を入力します。名前はプレースホルダーです。それは使用されていません。

    5. [Next (次へ)] を選択します。

    6. [Step 4: Add deploy stage (ステップ 4: デプロイステージの追加)] ページで、[Skip deploy stage (デプロイステージのスキップ)] を選択し、[スキップ] を選択して警告メッセージを受け入れます。

    7. [Step 5: Review (ステップ 5: 確認)] で、[パイプラインの作成] を選択します。ソースとビルドステージを示す図が表示されます。

      パイプラインを表示します。
  5. 次のようにして、Device Farm テストアクションをパイプラインに追加します。

    1. 右上の [編集] を選択します。

    2. [Edit stage (ステージの編集)] を選択します。[削除] を選択します。これにより、パイプライン作成のためには使用しないプレースホルダーステージが削除されます。

    3. 図の最下部で [+ Add stage] (+ ステージの追加) を選択します。

    4. [ステージ名] にステージ名 (Test など) を入力し、[Add stage (ステージの追加)] を選択します。

    5. [+ Add action group (+ アクションの追加)] を選択します。

    6. アクション名 に、 などの名前を入力します DeviceFarmTest。

    7. アクションプロバイダ で、AWS Device Farm を選択します。[リージョン] がデフォルトでパイプラインリージョンになることを許可します。

    8. [入力アーティファクト] で、テストステージに先立つステージの出力アーティファクトと一致する入力アーティファクト (SourceArtifact など) を選択します。

      AWS CodePipeline コンソールでは、パイプライン図の情報アイコンにカーソルを合わせると、各ステージの出力アーティファクトの名前を確認できます。パイプラインがソースステージから直接アプリをテストする場合は、 を選択しますSourceArtifact。パイプラインにビルドステージが含まれている場合は、 を選択しますBuildArtifact

    9. ProjectId、Device Farm プロジェクト ID を選択します。このチュートリアルの最初の手順に従い、プロジェクト ID を取得します。

    10. DevicePoolArn、デバイスプールARNの を入力します。for ARN Top Devices など、ARNsプロジェクトの使用可能なデバイスプールを取得するには、 AWS CLIを使用して次のコマンドを入力します。

      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
    11. AppTypeiOS と入力します。

      以下は、 の有効な値のリストですAppType

      • iOS

      • Android

      • Web

    12. [デプロイ] に、コンパイルされたアプリケーションパッケージのパスを入力します。パスは、テストステージの入力アーティファクトのルートを基準とする相対パスです。このパスは ios-test.ipa に似ています。

    13. にテストのタイプTestTypeを入力し、次にテスト にテスト定義ファイルのパスを入力します。パスは、テストの入力アーティファクトのルートに関連します。

      組み込みの Device Farm テストのいずれかを使用している場合は、BUILTIN_ など、Device Farm プロジェクトで設定されたテストのタイプを入力しますFUZZ。にFuzzEventCount、6000 などの時間をミリ秒単位で入力します。にFuzzEventThrottle、50 などの時間をミリ秒単位で入力します。

      Device Farm の組み込みテストのいずれも使用していない場合は、テストのタイプを入力し、テスト にテスト定義ファイルのパスを入力します。パスは、テストの入力アーティファクトのルートに関連します。

      以下は、 の有効な値のリストですTestType

      • APPIUM_JAVA_JUNIT

      • APPIUM_JAVA_TESTNG

      • APPIUM_NODE

      • APPIUM_RUBY

      • APPIUM_PYTHON

      • APPIUM_WEB_JAVA_JUNIT

      • APPIUM_WEB_JAVA_TESTNG

      • APPIUM_WEB_NODE

      • APPIUM_WEB_RUBY

      • APPIUM_WEB_PYTHON

      • BUILTIN_FUZZ

      • INSTRUMENTATION

      • XCTEST

      • XCTEST_UI

      注記

      カスタム環境ノードはサポートされていません。

    14. 残りのフィールドにはテストおよびアプリケーションタイプに適した構成を入力します。

    15. (オプション) [アドバンスト] で、テストランの情報の設定を行います。

    16. [Save] を選択します。

    17. 編集中のステージで、[完了] を選択します。 AWS CodePipeline のペインで [保存] を選択し、警告メッセージで [保存] を選択します。

    18. 変更を送信してパイプラインの実行を開始するには、[変更のリリース]、[リリース] の順に選択します。