

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 teste votre application iOS avec AWS Device Farm
<a name="tutorials-codebuild-devicefarm-S3"></a>

 Vous pouvez l'utiliser AWS CodePipeline pour configurer facilement un flux d'intégration continue dans lequel votre application est testée chaque fois que le compartiment source change. Ce didacticiel vous montre comment créer et configurer un pipeline pour tester votre application iOS à partir d'un compartiment S3. Le pipeline détecte l'arrivée d'une modification enregistrée via Amazon CloudWatch Events, puis utilise [Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) pour tester l'application créée. 

**Important**  
Dans le cadre de la création d'un pipeline, un compartiment d'artefacts S3 fourni par le client sera utilisé 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 à cette personne sûre et Comptes AWS qu'elle sera 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 tester cela en utilisant votre application iOS existante ou vous pouvez utiliser l'[exemple d'application iOS](samples/s3-ios-test-1.zip).

**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
   ```

## Configurer CodePipeline pour utiliser vos tests Device Farm (exemple Amazon S3)
<a name="codepipeline-configure-tests-S3"></a>

1. Créez ou utilisez un compartiment S3 avec la gestion des versions activée. Suivez les instructions fournies dans [Étape 1 : créer un compartiment source S3 pour votre application](tutorials-simple-s3.md#s3-create-s3-bucket) pour créer un compartiment S3.

1. Dans la console Amazon S3 de votre compartiment, choisissez **Upload** et suivez les instructions pour télécharger votre fichier .zip.

   Votre exemple d'application doit être empaqueté dans un fichier .zip.

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**, choisissez **Amazon S3**.

   1. Dans l'**emplacement Amazon S3**, entrez le compartiment, par exemple`my-storage-bucket`, et la clé d'objet, par exemple `s3-ios-test-1.zip` pour votre fichier .zip.

   1. Choisissez **Suivant**.

1. À **l'étape 4 : Ajouter une phase de construction**, créez une étape de construction fictive pour votre pipeline. Cela vous permet de créer le pipeline dans l'assistant. Une fois que vous avez créé votre pipeline à deux étapes à l'aide de l'assistant, vous n'avez plus besoin de cette étape de génération d'espace réservé. Une fois le pipeline terminé, cette deuxième étape est supprimée et la nouvelle étape de test est ajoutée à l'étape 5.

   

   1. Dans **Fournisseur de génération**, choisissez **Ajouter Jenkins**. Cette sélection de build est uniquement un espace réservé. Elle n'est pas utilisée.

   1. Dans **Nom du fournisseur**, entrez un nom. Ce nom est un espace réservé. Elle n'est pas utilisée.

   1. Dans **URL du serveur**, entrez du texte. Ce texte est un espace réservé. Elle n'est pas utilisée.

   1. Dans **Nom du projet**, entrez un nom. Ce nom est un espace réservé. Elle n'est pas utilisée.

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

   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.  
![\[\]](http://docs.aws.amazon.com/fr_fr/codepipeline/latest/userguide/images/codepipeline-view-pipeline-S3.png)

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

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

   1. Choisissez **Modifier l'étape**. Sélectionnez **Delete (Supprimer)**. Cela supprime l'étape d'espace réservé maintenant que vous n'en avez plus besoin pour la création du pipeline.

   1. Au bas du diagramme, choisissez **\$1 Ajouter une étape**.

   1. Dans le nom de l'étape, saisissez un nom pour l'étape, par exemple Test, puis choisissez **Ajouter une étape**.

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

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

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

      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. Dans **ProjectId**, choisissez l'ID 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 **iOS**.

      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 à `ios-test.ipa`.

   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.

      Si vous utilisez l'un des tests Device Farm intégrés, entrez le type de test configuré dans votre projet Device Farm, tel que BUILTIN\$1FUZZ. Dans **FuzzEventCount**, entrez une durée en millisecondes, par exemple 6 000. Dans **FuzzEventThrottle**, entrez une durée en millisecondes, par exemple 50.

      Si vous n'utilisez pas l'un des tests Device Farm intégrés, 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 l'exécution d'un pipeline, choisissez **Changement de version**, puis **Publication**.