Tutorial: Erstellen Sie eine Pipeline, die Ihre Android-App erstellt und testet mit AWS Device Farm - AWS CodePipeline

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

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, um die App und die Device Farm 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.

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 verwenden.

Anmerkung

Bevor Sie beginnen

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

  2. Wählen Sie Ihr Projekt. Kopieren Sie im Browser das URL Ihres neuen Projekts. Das URL enthält die Projekt-ID.

  3. Kopieren Sie diese Produkt-ID und bewahren Sie sie auf. Sie verwenden es, wenn Sie Ihre Pipeline in erstellen CodePipeline.

    Hier ist ein 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

  1. Fügen Sie eine Datei mit dem Namen buildspec.ymlim 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
  2. (Optional) Wenn Sie Calabash or Appium zum Testen Ihrer App verwenden, 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.

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

    1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die CodePipeline Konsole unter https://console.aws.amazon.com/codepipeline/.

    2. Wählen Sie Create pipeline (Pipeline erstellen) aus. Geben Sie auf der Seite Step 1: Choose pipeline settings (Schritt 1: Pipeline-Einstellungen auswählen) unter Pipeline name (Pipeline-Name) den Namen für Ihre Pipeline ein.

    3. Wählen Sie unter Pipeline-Typ die Option V2 aus. Weitere Informationen finden Sie unter Arten von Pipelines. Wählen Sie Weiter.

    4. 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 Hinzufügen von Berechtigungen zur CodePipeline-Servicerolle.

      { "Effect": "Allow", "Action": [ "devicefarm:ListProjects", "devicefarm:ListDevicePools", "devicefarm:GetRun", "devicefarm:GetUpload", "devicefarm:CreateUpload", "devicefarm:ScheduleRun" ], "Resource": "*" }
    5. Belassen Sie die Einstellungen unter Erweiterte Einstellungen bei den Standardeinstellungen, und wählen Sie dann Next (Weiter) aus.

    6. Wählen Sie auf der Seite Schritt 2: Quellstufe hinzufügen im Feld Quellanbieter die Option GitHub.

    7. 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 unterGitHub Verbindungen.

    8. Wählen Sie unter Repository das Quell-Repository aus.

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

    10. Behalten Sie die verbleibenden Standardwerte für die Quellaktion bei. Wählen Sie Weiter.

  4. Fügen Sie unter Add build stage (Build-Phase hinzufügen) eine Build-Phase hinzu:

    1. Wählen Sie unter Build provider (Build-Anbieter) die Option AWS CodeBuild aus. Belassen Sie unter Region als Standardeinstellung die Pipeline-Region.

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

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

    4. 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.

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

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

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

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

    8. 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.

    9. Wählen Sie Weiter.

  5. Wählen Sie auf der Seite Step 4: Add deploy stage (Schritt 4: Bereitstellungsstufe hinzufügen) die Option Skip deploy stage (Bereitstellungsstufe überspringen) aus und akzeptieren Sie anschließend die Warnmeldung, indem Sie erneut Skip (Überspringen) auswählen. Wählen Sie Weiter.

  6. Wählen Sie unter Step 5: Review (Schritt 5: Überprüfen) die Option Create pipeline (Pipeline erstellen) aus. Sie sollten ein Diagramm sehen, das Ihre Pipeline-Quell- und -Build-Stufen anzeigt.

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

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

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

    3. Wählen Sie + Add action group (Aktionsgruppe hinzufügen).

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

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

    6. 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.

    7. Geben Sie ProjectIdunter Ihre Device Farm Farm-Projekt-ID ein. Führen Sie die Schritte zu Beginn dieses Tutorials aus, um Ihre Projekt-ID abzurufen.

    8. Geben Sie im DevicePoolArnFeld die ARN für den Gerätepool ein. Geben Sie den folgenden Befehl ein, um den verfügbaren Gerätepool ARNs ARN für das Projekt abzurufen, einschließlich des AWS CLI Gerätepools für die wichtigsten Geräte:

      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
    9. Geben AppTypeSie Android ein.

      Im Folgenden finden Sie eine Liste gültiger Werte für AppType:

      • iOS

      • Android

      • Web

    10. 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.

    11. 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_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

      Anmerkung

      Knoten für benutzerdefinierte Umgebungen werden nicht unterstützt.

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

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

    14. Wählen Sie Save (Speichern) aus.

    15. 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).

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