Tutoriel : Créez un pipeline qui crée et teste votre application Android avec AWS Device Farm - AWS CodePipeline

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Tutoriel : Créez un pipeline qui crée et teste votre application Android avec AWS Device Farm

Vous pouvez l'utiliser AWS CodePipeline pour configurer un flux d'intégration continue dans lequel votre application est créée et testée chaque fois qu'un commit est envoyé. Ce didacticiel explique comment créer et configurer un pipeline pour créer et tester votre application Android avec le code source d'un GitHub référentiel. Le pipeline détecte l'arrivée d'un nouveau GitHub commit, puis l'utilise CodeBuildpour créer l'application et Device Farm pour la tester.

Important

Dans le cadre de la création d'un pipeline dans la console, un compartiment d'artefacts S3 sera utilisé par CodePipeline pour les artefacts. (Ceci est différent du compartiment utilisé pour une action source S3.) Si le compartiment d'artefacts S3 se trouve dans un compte différent de celui de votre pipeline, assurez-vous que le compartiment d'artefacts S3 appartient Comptes AWS à une personne sûre et fiable.

Important

La plupart des actions que vous ajoutez à votre pipeline dans le cadre de cette procédure impliquent AWS des ressources que vous devez créer avant de créer le pipeline. AWS les ressources pour vos actions source doivent toujours être créées dans la même AWS région que celle où vous créez votre pipeline. Par exemple, si vous créez votre pipeline dans la région USA Est (Ohio), votre CodeCommit référentiel doit se trouver dans la région USA Est (Ohio).

Vous pouvez ajouter des actions interrégionales lorsque vous créez votre pipeline. AWS les ressources pour les actions interrégionales doivent se trouver dans la même AWS région que celle où vous prévoyez d'exécuter l'action. Pour de plus amples informations, veuillez consulter Ajouter une action interrégionale dans CodePipeline.

Vous pouvez l'essayer en utilisant votre application Android existante et vos définitions de test, ou vous pouvez utiliser l'exemple d'application et les définitions de test fournis par Device Farm.

Note

Avant de commencer

  1. Connectez-vous à la AWS Device Farm console et choisissez Créer un nouveau projet.

  2. Choisissez votre projet. Dans le navigateur, copiez le fichier URL de votre nouveau projet. URLContient l'ID du projet.

  3. Copiez et conservez cet ID de projet. Vous l'utilisez lorsque vous créez votre pipeline dans CodePipeline.

    Voici un URL exemple de projet. Pour extraire l'ID de projet, copiez la valeur figurant après projects/. Dans cet exemple, l'ID de projet est eec4905f-98f8-40aa-9afc-4c1cfexample.

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

Configurez CodePipeline pour utiliser vos tests Device Farm

  1. Ajoutez et validez un fichier appelé buildspec.ymlà la racine du code de votre application, puis envoyez-le dans votre référentiel. CodeBuild utilise ce fichier pour exécuter des commandes et accéder aux artefacts nécessaires à la création de votre application.

    version: 0.2 phases: build: commands: - chmod +x ./gradlew - ./gradlew assembleDebug artifacts: files: - './android/app/build/outputs/**/*.apk' discard-paths: yes
  2. (Facultatif) Si vous utilisez Calabash ou Appium pour tester votre application, ajoutez le fichier de définition de test à votre référentiel. Dans une étape ultérieure, vous pourrez configurer Device Farm pour utiliser les définitions afin de réaliser votre suite de tests.

    Si vous utilisez les tests intégrés à Device Farm, vous pouvez ignorer cette étape.

  3. Pour créer votre pipeline et ajouter une étape source, procédez comme suit :

    1. Connectez-vous à la CodePipeline console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/codepipeline/.

    2. Choisissez Créer un pipeline. Sur la page Étape 1: Choisir des paramètres de pipeline, dans Nom du pipeline, saisissez le nom de votre pipeline.

    3. Dans Type de pipeline, choisissez V2. Pour de plus amples informations, veuillez consulter Types de pipelines. Choisissez Suivant.

    4. Dans Rôle de service, laissez Nouveau rôle de service sélectionné et laissez Nom du rôle inchangé. Vous pouvez également choisir d'utiliser un rôle de service si vous en avez déjà un.

      Note

      Si vous utilisez un rôle de CodePipeline service créé avant juillet 2018, vous devez ajouter des autorisations pour Device Farm. Pour ce faire, ouvrez la IAM console, recherchez le rôle, puis ajoutez les autorisations suivantes à la politique du rôle. Pour de plus amples informations, veuillez consulter Ajout d'autorisations au rôle de service CodePipeline.

      { "Effect": "Allow", "Action": [ "devicefarm:ListProjects", "devicefarm:ListDevicePools", "devicefarm:GetRun", "devicefarm:GetUpload", "devicefarm:CreateUpload", "devicefarm:ScheduleRun" ], "Resource": "*" }
    5. Laissez les paramètres sous Advanced settings (Paramètres avancés) à leurs valeurs par défaut, puis choisissez Suivant.

    6. Sur la page Étape 2 : Ajouter une étape source, dans Source provider, sélectionnez GitHub.

    7. Sous Connexion, choisissez une connexion existante ou créez-en une nouvelle. Pour créer ou gérer une connexion pour votre action GitHub source, consultezGitHub connexions.

    8. Dans Référentiel, choisissez le référentiel source.

    9. Dans Branche, choisissez la branche que vous souhaitez utiliser.

    10. Conservez les valeurs par défaut restantes pour l'action source. Choisissez Suivant.

  4. Dans le champ Ajouter une étape de génération, ajoutez une étape de génération :

    1. Dans le champ Fournisseur de génération, choisissez AWS CodeBuild. Acceptez la région du pipeline comme Région par défaut.

    2. Sélectionnez Create a project (Créer un projet).

    3. Dans Nom du projet, saisissez un nom pour ce projet de génération.

    4. Dans le champ Image d'environnement, choisissez Image gérée. Pour Système d'exploitation, choisissez Ubuntu.

    5. Pour Runtime (Exécution), sélectionnez Standard. Pour Image, choisissez aws/codebuild/standard:5.0.

      CodeBuild utilise cette image du système d'exploitation, sur laquelle Android Studio est installé, pour créer votre application.

    6. Pour Rôle de service, choisissez votre rôle CodeBuild de service existant ou créez-en un nouveau.

    7. Pour Build specifications (Spécifications de génération), choisissez Use a buildspec file (Utiliser un fichier buildspec).

    8. Choisissez Continuer vers CodePipeline. Cela revient à la CodePipeline console et crée un CodeBuild projet qui utilise le buildspec.yml dans votre référentiel pour la configuration. Le projet de construction utilise un rôle de service pour gérer les Service AWS autorisations. Cette étape peut prendre quelques minutes.

    9. Choisissez Suivant.

  5. Sur la page Step 4: Add deploy stage (Étape 4 : Ajouter une étape de déploiement), choisissez Skip deploy stage (Ignorer l'étape de déploiement), puis acceptez le message d'avertissement en choisissant à nouveau Skip (Ignorer). Choisissez Suivant.

  6. Dans Étape 5 : Vérification, choisissez Créer un pipeline. Vous devez voir un diagramme montrant les étapes source et de génération.

  7. Ajoutez une action de test Device Farm à votre pipeline :

    1. Dans le coin supérieur droit, choisissez Modifier.

    2. Au bas du diagramme, choisissez + Ajouter une étape. Dans le champ Nom de l'étape, saisissez un nom, tel que Test.

    3. Choisissez + Ajouter un groupe d'actions.

    4. Dans Nom de l'action, entrez un nom.

    5. Dans Action provider, choisissez AWS Device Farm. Acceptez la région du pipeline comme Région par défaut.

    6. Dans Artefacts d'entrée, choisissez l'artefact d'entrée correspondant à l'artefact de sortie de l'étape qui précède l'étape de test, comme BuildArtifact.

      Dans la AWS CodePipeline console, vous pouvez trouver le nom de l'artefact de sortie pour chaque étape en survolant l'icône d'information dans le diagramme du pipeline. Si votre pipeline teste votre application directement depuis l'étape Source, choisissez SourceArtifact. Si le pipeline inclut une phase de construction, choisissez BuildArtifact.

    7. Entrez ProjectIdl'identifiant de votre projet Device Farm. Suivez les étapes indiquées au début de ce didacticiel pour récupérer votre ID de projet.

    8. Dans DevicePoolArn, entrez le ARN pour le pool de périphériques. Pour obtenir le pool de périphériques disponible ARNs pour le projet, y compris le pool ARN pour les meilleurs appareils, utilisez la commande suivante : AWS CLI

      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
    9. Dans AppType, entrez Android.

      Voici une liste de valeurs valides pour AppType:

      • iOS

      • Android

      • Web

    10. Dans App, saisissez le chemin d'accès au package de l'application compilée. Ce chemin d'accès se rapporte à la racine de l'artefact d'entrée de votre étape de test. En règle générale, ce chemin est similaire à app-release.apk.

    11. Dans TestType, entrez votre type de test, puis dans Test, entrez le chemin du fichier de définition du test. Ce chemin dépend de la racine de l'artefact d'entrée de votre test.

      Voici une liste de valeurs valides pour 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

      Note

      Les nœuds d'environnement personnalisés ne sont pas pris en charge.

    12. Dans les autres champs, indiquez la configuration appropriée pour votre test et le type d'application.

    13. (Facultatif) Dans Avancé, indiquez les informations de configuration pour le test.

    14. Choisissez Save (Enregistrer).

    15. Dans l'étape que vous modifiez, choisissez Effectué. Dans le volet AWS CodePipeline , choisissez Enregistrer puis Enregistrer dans le message d'avertissement.

    16. Pour soumettre vos modifications et lancer la génération d'un pipeline, choisissez Changement de version, puis Publication.