

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Tutorial: Erstellen Sie eine Pipeline, die Ihre Android-App erstellt und testet mit AWS Device Farm
<a name="tutorials-codebuild-devicefarm"></a>

Sie können AWS CodePipeline damit einen kontinuierlichen Integrationsablauf konfigurieren, in dem Ihre App jedes Mal erstellt und getestet wird, wenn ein Commit übertragen wird. Dieses Tutorial zeigt, wie Sie eine Pipeline erstellen und konfigurieren, um Ihre Android-App mit Quellcode in einem GitHub Repository zu erstellen und zu testen. Die Pipeline erkennt das Eintreffen eines neuen GitHub Commits und verwendet es dann [CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html), um die App und die [Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) zu erstellen, um sie zu testen.

**Wichtig**  
Im Rahmen der Erstellung einer Pipeline in der Konsole wird ein S3-Artefakt-Bucket von CodePipeline for artefacts verwendet. (Dies unterscheidet sich von dem Bucket, der für eine S3-Quellaktion verwendet wird.) Wenn sich der S3-Artefakt-Bucket in einem anderen Konto befindet als das Konto für Ihre Pipeline, stellen Sie sicher, dass der S3-Artefakt-Bucket denjenigen gehört AWS-Konten , die sicher und zuverlässig sind.

**Wichtig**  
Viele der Aktionen, die Sie Ihrer Pipeline in diesem Verfahren hinzufügen, beinhalten AWS Ressourcen, die Sie erstellen müssen, bevor Sie die Pipeline erstellen. AWS Ressourcen für Ihre Quellaktionen müssen immer in derselben AWS Region erstellt werden, in der Sie Ihre Pipeline erstellen. Wenn Sie Ihre Pipeline beispielsweise in der Region USA Ost (Ohio) erstellen, muss sich Ihr CodeCommit Repository in der Region USA Ost (Ohio) befinden.   
Sie können beim Erstellen Ihrer Pipeline regionsübergreifende Aktionen hinzufügen. AWS Ressourcen für regionsübergreifende Aktionen müssen sich in derselben AWS Region befinden, in der Sie die Aktion ausführen möchten. Weitere Informationen finden Sie unter [Fügen Sie eine regionsübergreifende Aktion hinzu in CodePipeline](actions-create-cross-region.md).

Sie können dies mit Ihrer vorhandenen Android-App und Ihren Testdefinitionen ausprobieren, oder Sie können die [von Device Farm bereitgestellten Beispiel-Apps und Testdefinitionen](https://github.com/aws-samples/aws-device-farm-sample-app-for-android) verwenden.

**Bevor Sie beginnen**

1. Melden Sie sich bei der AWS Device Farm Konsole an und wählen Sie **Neues Projekt erstellen** aus.

1. Wählen Sie Ihr Projekt. Kopieren Sie im Browser die URL Ihres neuen Projekts. Die URL enthält die Projekt-ID. 

1. Kopieren Sie diese Produkt-ID und bewahren Sie sie auf. Sie benötigen sie für die Erstellung Ihrer Pipeline in CodePipeline.

   Hier ist eine Beispiel-URL für ein Projekt. Um die Projekt-ID zu extrahieren, kopieren Sie den Wert nach `projects/`. In diesem Beispiel lautet die Produkt-ID `eec4905f-98f8-40aa-9afc-4c1cfexample`.

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

## Für CodePipeline die Verwendung Ihrer Device Farm Farm-Tests konfigurieren
<a name="codepipeline-configure-tests"></a>

1. 

   Fügen Sie eine Datei mit dem Namen [https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html)im Stammverzeichnis Ihres App-Codes hinzu, übertragen Sie sie und übertragen Sie sie in Ihr Repository. CodeBuild verwendet diese Datei, um Befehle auszuführen und auf Artefakte zuzugreifen, die für die Erstellung Ihrer App erforderlich sind.

   ```
   version: 0.2
   
   phases:
     build:
       commands:
         - chmod +x ./gradlew
         - ./gradlew assembleDebug
   artifacts:
     files:
        - './android/app/build/outputs/**/*.apk'
     discard-paths: yes
   ```

1. (Optional) Wenn Sie [Calabash or Appium zum Testen Ihrer App verwenden](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types-intro.html), fügen Sie die Testdefinitionsdatei zu Ihrem Repository hinzu. In einem späteren Schritt können Sie Device Farm so konfigurieren, dass die Definitionen zur Ausführung Ihrer Testsuite verwendet werden. 

   Wenn Sie die integrierten Tests von Device Farm verwenden, können Sie diesen Schritt überspringen.

1. Um Ihre Pipeline zu erstellen und eine Quellphase hinzuzufügen, gehen Sie wie folgt vor:

   1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CodePipeline Konsole unter [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

   1. Wählen sie auf der Seite **Welcome (Willkommen)** die Option **Getting started (Erste Schritte)** aus, oder auf der Seite **Pipelines** die Option **Create pipeline (Pipeline erstellen)**.

   1. Wählen Sie auf der Seite **Schritt 1: Erstellungsoption auswählen** unter **Erstellungsoptionen** die Option **Benutzerdefinierte Pipeline erstellen** aus. Wählen Sie **Weiter** aus.

   1. Geben Sie auf der Seite **Schritt 2: Pipeline-Einstellungen auswählen** im Feld **Pipeline-Name** den Namen für Ihre Pipeline ein.

   1. CodePipeline bietet Pipelines vom Typ V1 und V2, die sich in ihren Eigenschaften und im Preis unterscheiden. Der Typ V2 ist der einzige Typ, den Sie in der Konsole auswählen können. Weitere Informationen finden Sie unter [Pipeline-Typen](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel). Informationen zur Preisgestaltung für finden Sie CodePipeline unter [Preisgestaltung](https://aws.amazon.com/codepipeline/pricing/).

   1. Wählen Sie unter **Service role** weiterhin **New service role** aus und lassen Sie **Role name** unverändert. Sie können auch eine vorhandene Service-Rolle verwenden, sofern eine vorhanden ist.
**Anmerkung**  
Wenn Sie eine CodePipeline Servicerolle verwenden, die vor Juli 2018 erstellt wurde, müssen Sie Berechtigungen für Device Farm hinzufügen. Öffnen Sie dazu die IAM-Konsole, suchen Sie nach der Rolle und fügen Sie dann der Rollenrichtlinie die folgenden Berechtigungen hinzu. Weitere Informationen finden Sie unter [Fügen Sie der CodePipeline Servicerolle Berechtigungen hinzu](how-to-custom-role.md#how-to-update-role-new-services).  

      ```
      {
           "Effect": "Allow",
           "Action": [
              "devicefarm:ListProjects",
              "devicefarm:ListDevicePools",
              "devicefarm:GetRun",
              "devicefarm:GetUpload",
              "devicefarm:CreateUpload",
              "devicefarm:ScheduleRun"
           ],
           "Resource": "*"
      }
      ```

   1. Belassen Sie die Einstellungen unter **Erweiterte Einstellungen** bei den Standardeinstellungen, und wählen Sie dann **Next (Weiter)** aus.

   1. Wählen Sie auf der Seite **Schritt 3: Quellstufe hinzufügen** unter **Quellanbieter** die Option **GitHub (via GitHub App)** aus.

   1. Wählen Sie unter **Verbindung** eine bestehende Verbindung aus oder erstellen Sie eine neue. Informationen zum Erstellen oder Verwalten einer Verbindung für Ihre GitHub Quellaktion finden Sie unter[GitHub Verbindungen](connections-github.md).

   1. Wählen Sie unter **Repository** das Quell-Repository aus.

   1. Wählen Sie unter **Branch (Verzweigung)** die Verzweigung aus, Sie verwenden möchten.

   1. Behalten Sie die übrigen Standardeinstellungen für die Quellaktion bei. Wählen Sie **Weiter** aus.

1. **Fügen Sie in Schritt 4: Build-Phase** hinzufügen eine Build-Phase hinzu:

   1. Wählen Sie **unter Buildanbieter** die Option **Andere Buildanbieter** und dann aus **AWS CodeBuild**. Belassen Sie unter **Region** als Standardeinstellung die Pipeline-Region.

   1. Wählen Sie **Create project** (Projekt erstellen) aus.

   1. Geben Sie unter **Project name (Projektname)** einen Namen für dieses Build-Projekt ein.

   1. Wählen Sie für **Environment image (Umgebungs-Image)** die Option **Managed image (Verwaltetes Image)** aus. Wählen Sie für **Operating system (Betriebssystem)** die Option **Ubuntu** aus.

   1. Wählen Sie unter **Runtime (Laufzeit)** die Option **Standard** aus. **Wählen Sie für **Image** aus:5.0aws/codebuild/standard.**

      CodeBuild verwendet dieses Betriebssystem-Image, auf dem Android Studio installiert ist, um Ihre App zu erstellen.

   1. Wählen Sie **unter Servicerolle** Ihre bestehende CodeBuild Servicerolle aus oder erstellen Sie eine neue.

   1. Wählen Sie unter **Build specifications (Build-Spezifikationen)** die Option **Use a buildspec file (Eine buildspec-Datei verwenden)**.

   1. Wählen Sie **Weiter zu CodePipeline**. Dadurch kehren Sie zur CodePipeline Konsole zurück und erstellen ein CodeBuild Projekt, das das `buildspec.yml` in Ihrem Repository für die Konfiguration verwendet. Das Build-Projekt verwendet eine Servicerolle zur Verwaltung von AWS-Service Berechtigungen. Dieser Vorgang kann einige Minuten dauern.

   1. Wählen Sie **Weiter** aus.

1. Wählen Sie in **Schritt 5: Testphase hinzufügen** die Option **Testphase überspringen** aus und akzeptieren Sie dann die Warnmeldung, indem Sie erneut **Überspringen** wählen. 

   Wählen Sie **Weiter** aus.

1. Wählen Sie auf der Seite **Schritt 6: Bereitstellungsphase hinzufügen** die Option **Bereitstellungsphase überspringen** aus und akzeptieren Sie dann die Warnmeldung, indem Sie erneut auf **Überspringen** klicken. Wählen Sie **Weiter** aus.

1. Wählen **Sie auf Schritt 7: Überprüfen** die Option **Pipeline erstellen** aus. Sie sollten ein Diagramm sehen, das Ihre Pipeline-Quell- und -Build-Stufen anzeigt.

1. Fügen Sie Ihrer Pipeline eine Device Farm Farm-Testaktion hinzu:

   1. Wählen Sie rechts oben **Edit (Bearbeiten)** aus.

   1. Wählen Sie unten im Diagramm **\$1 Add stage (\$1 Stufe hinzufügen)** aus. Geben Sie unter **Stage name (Name der Phase)**, einen Namen ein, z. B. **Test**.

   1. Wählen Sie **\$1 Add action group (Aktionsgruppe hinzufügen)**.

   1. Geben Sie unter **Action name (Aktionsname)** einen Namen ein. 

   1. Wählen Sie **unter Aktionsanbieter** die Option **AWS Device Farm** aus. Belassen Sie unter **Region** als Standardeinstellung die Pipeline-Region.

   1. Wählen Sie unter **Input artifacts (Eingabeartefakte)** das Eingabeartefakt aus, das mit dem Ausgabeartefakt der Phase übereinstimmt, die sich vor der Testphase befindet, wie etwa `BuildArtifact`. 

      In der AWS CodePipeline Konsole finden Sie den Namen des Ausgabeartefakts für jede Phase, indem Sie den Mauszeiger über das Informationssymbol im Pipeline-Diagramm bewegen. Wenn Ihre Pipeline Ihre App direkt von der **Quellphase** aus testet, wählen Sie. **SourceArtifact** Wenn die Pipeline eine **Build-Phase** enthält, wählen Sie **BuildArtifact**.

   1. Geben Sie **ProjectId**unter Ihre Device Farm Farm-Projekt-ID ein. Führen Sie die Schritte zu Beginn dieses Tutorials aus, um Ihre Projekt-ID abzurufen.

   1. Geben Sie **DevicePoolArn**unter den ARN für den Gerätepool ein. Geben Sie mit der AWS CLI den folgenden Befehl ein, um den verfügbaren Gerätepool ARNs für das Projekt abzurufen, einschließlich des ARN für Top-Geräte: 

      ```
      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
      ```

   1. Geben **AppType**Sie **Android** ein.

      Im Folgenden finden Sie eine Liste gültiger Werte für **AppType**:
      + **iOS**
      + **Android**
      + **Web**

   1. Geben Sie unter **App** den Pfad des kompilierten Anwendungspakets ein. Der Pfad ist relativ zum Stamm des Eingabeartefakts für die Testphase. In der Regel sieht dieser Pfad in etwa wie `app-release.apk` aus.

   1. Geben Sie unter Ihren Testtyp und anschließend im Feld **Test** den Pfad der Testspezifikationsdatei ein. **TestType** Der Pfad ist relativ zum Stamm des Eingabeartefakts für Ihren Test.

      Im Folgenden finden Sie eine Liste gültiger Werte für **TestType**:
      + **APPIUM\$1JAVA\$1JUNIT**
      + **APPIUM\$1JAVA\$1TESTNG**
      + **APPIUM\$1KNOTEN**
      + **APPIUM\$1RUBY**
      + **APPIUM\$1PYTHON**
      + **APPIUM\$1WEB\$1JAVA\$1JUNIT**
      + **APPIUM\$1WEB\$1JAVA\$1TESTNG**
      + **APPIUM\$1WEB\$1NODE**
      + **APPIUM\$1WEB\$1RUBY**
      + **APPIUM\$1WEB\$1PYTHON**
      + **EINGEBAUTETER\$1FUZZ**
      + **INSTRUMENTATION**
      + **XCTEST**
      + **XCTEST\$1UI**
**Anmerkung**  
Knoten für benutzerdefinierte Umgebungen werden nicht unterstützt.

   1. Geben Sie in den übrigen Feldern die Konfiguration ein, die für Ihren Test- und Anwendungstyp geeignet ist.

   1. (Optional) Geben Sie unter **Advanced (Erweitert)** Konfigurationsinformationen für Ihren Testlauf ein.

   1. Wählen Sie **Speichern**.

   1. Wählen Sie in der Phase, die Sie bearbeiten, **Fertig**. Wählen Sie im AWS CodePipeline -Fenster **Save (Speichern)** und dann in der Warnmeldung **Save (Speichern)**.

   1. Um Ihre Änderungen zu übertragen und einen Pipeline-Build zu starten, wählen Sie **Release change (Änderung freigeben)** und dann **Release (Freigeben)**.