

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
<a name="tutorials-codebuild-devicefarm"></a>

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 [CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)pour créer l'application et [Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) 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](actions-create-cross-region.md).

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](https://github.com/aws-samples/aws-device-farm-sample-app-for-android).

**Avant de commencer**

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

1. Choisissez votre projet. Dans le navigateur, copiez l'URL de votre nouveau projet. L'URL contient l'ID de projet. 

1. Copiez et conservez cet ID de projet. Vous l'utiliserez lorsque vous créerez votre pipeline dans CodePipeline.

   Voici un exemple d'URL 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
<a name="codepipeline-configure-tests"></a>

1. 

   Ajoutez et validez un fichier appelé [https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html)à 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
   ```

1. (Facultatif) Si vous [utilisez Calabash ou Appium pour tester votre application](https://docs.aws.amazon.com/devicefarm/latest/developerguide/test-types-intro.html), 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.

1. 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/](https://console.aws.amazon.com/codepipeline/).

   1. Sur la page **Bienvenue**, la page **Démarrez** ou la page **Pipelines**, choisissez **Créer un pipeline**.

   1. Sur la page **Étape 1 : Choisir une option de création**, sous **Options de création**, choisissez l'option **Créer un pipeline personnalisé**. Choisissez **Suivant**.

   1. Sur la page **Étape 2 : Choisir les paramètres du pipeline**, dans **Nom du pipeline**, entrez le nom de votre pipeline.

   1. CodePipeline fournit des pipelines de type V1 et V2, dont les caractéristiques et le prix diffèrent. Le type V2 est le seul type que vous pouvez choisir dans la console. Pour plus d'informations, consultez la section [Types de pipelines](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel). Pour plus d'informations sur la tarification CodePipeline, consultez la section [Tarification](https://aws.amazon.com/codepipeline/pricing/).

   1. 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 console IAM, recherchez le rôle, puis ajoutez les autorisations suivantes à la politique du rôle. Pour de plus amples informations, veuillez consulter [Ajouter des autorisations au rôle CodePipeline de service](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. Laissez les paramètres sous **Advanced settings (Paramètres avancés)** à leurs valeurs par défaut, puis choisissez **Suivant**.

   1. Sur la page **Étape 3 : Ajouter une étape source**, dans **Source provider**, sélectionnez **GitHub (via GitHub App)**.

   1. 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, consultez[GitHub connexions](connections-github.md).

   1. Dans **Référentiel**, choisissez le référentiel source.

   1. Dans **Branche**, choisissez la branche que vous souhaitez utiliser.

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

1. À **l'étape 4 : Ajouter une phase de construction**, ajoutez une étape de construction :

   1. Dans **Fournisseur de build**, choisissez **Autres fournisseurs de build**, puis choisissez **AWS CodeBuild**. Acceptez la région du pipeline comme **Région** par défaut.

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

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

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

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

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

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

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

   1. Choisissez **Suivant**.

1. À **l'étape 5 : Ajouter une phase de test**, choisissez **Ignorer l'étape de test**, puis acceptez le message d'avertissement en choisissant à nouveau **Ignorer**. 

   Choisissez **Suivant**.

1. Sur la page **Étape 6 : Ajouter une phase de déploiement**, choisissez **Ignorer l'étape de déploiement**, puis acceptez le message d'avertissement en choisissant à nouveau **Ignorer**. Choisissez **Suivant**.

1. À **l'étape 7 : Révision**, choisissez **Créer un pipeline**. Vous devez voir un diagramme montrant les étapes source et de génération.

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

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

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

   1. Choisissez **\$1 Ajouter un groupe d'actions**.

   1. Dans **Nom de l'action**, entrez un nom. 

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

   1. 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**.

   1. Entrez **ProjectId**l'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.

   1. Dans **DevicePoolArn**, entrez l'ARN du pool de périphériques. Pour obtenir le pool de périphériques disponible ARNs pour le projet, y compris l'ARN des meilleurs appareils, utilisez la AWS CLI pour entrer la commande suivante : 

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

   1. Dans **AppType**, entrez **Android**.

      Voici une liste de valeurs valides pour **AppType**:
      + **iOS**
      + **Android**
      + **Web**

   1. 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`.

   1. 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\$1JAVA\$1JUNIT**
      + **APPIUM\$1JAVA\$1TESTNG**
      + **APPIUM\$1NODE**
      + **APPIUM\$1RUBY**
      + **APPIUM\$1PYTHON**
      + **APPIUM\$1WEB\$1JAVA\$1JUNIT**
      + **APPIUM\$1WEB\$1JAVA\$1TESTNG**
      + **APPIUM\$1WEB\$1NODE**
      + **APPIUM\$1WEB\$1RUBY**
      + **APPIUM\$1WEB\$1PYTHON**
      + **FUZZ INTÉGRÉ**
      + **INSTRUMENTATION**
      + **XCTEST**
      + **XCTEST\$1UI**
**Note**  
Les nœuds d'environnement personnalisés ne sont pas pris en charge.

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

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

   1. Choisissez **Enregistrer**.

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

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