

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.

# Exemples de référentiels sources tiers pour CodeBuild
<a name="sample-third-party-source"></a>

Cette section décrit des exemples d'intégrations entre des référentiels sources tiers et. CodeBuild


| Exemple | Description | 
| --- | --- | 
|  BitBucket exemple de pull request et de filtre Webhook — voir [Exécutez l'exemple « Bitbucket pull request and webhook filter » pour CodeBuild](sample-bitbucket-pull-request.md)  |  Cet exemple vous montre comment créer une demande d'extraction à l'aide d'un référentiel Bitbucket. Il vous montre également comment utiliser un webhook Bitbucket de manière à déclencher CodeBuild pour créer une génération de projet.  | 
|  GitHub Exemple de serveur d'entreprise — voir [Exécutez l'exemple de serveur d' GitHub entreprise pour CodeBuild](sample-github-enterprise.md)  |  Cet exemple explique comment configurer vos CodeBuild projets lorsqu'un certificat est installé dans votre référentiel GitHub Enterprise Server. Il montre également comment activer les webhooks afin de CodeBuild recompiler le code source chaque fois qu'une modification de code est transmise à votre référentiel GitHub Enterprise Server.  | 
|  GitHub exemple de pull request et de filtre Webhook — voir [Exécutez l'exemple de GitHub pull request et de filtre webhook pour CodeBuild](sample-github-pull-request.md)  |  Cet exemple explique comment créer une pull request à l'aide d'un référentiel GitHub Enterprise Server. Il montre également comment activer les webhooks afin de CodeBuild recompiler le code source chaque fois qu'une modification de code est transmise à votre référentiel GitHub Enterprise Server.  | 

# Exécutez l'exemple « Bitbucket pull request and webhook filter » pour CodeBuild
<a name="sample-bitbucket-pull-request"></a>

AWS CodeBuild prend en charge les webhooks lorsque le référentiel source est Bitbucket. Cela signifie que pour un projet de CodeBuild compilation dont le code source est stocké dans un dépôt Bitbucket, les webhooks peuvent être utilisés pour reconstruire le code source chaque fois qu'une modification de code est envoyée au référentiel. Pour de plus amples informations, veuillez consulter [Événements du webhook Bitbucket](bitbucket-webhook.md). 

Cet exemple vous montre comment créer une demande d'extraction à l'aide d'un référentiel Bitbucket. Il vous montre également comment utiliser un webhook Bitbucket pour déclencher la création CodeBuild d'une version d'un projet.

**Note**  
Lors de l'utilisation de webhooks, il est possible pour un utilisateur de déclencher une compilation inattendue. Pour atténuer ce risque, voir[Bonnes pratiques d'utilisation des webhooks](webhooks.md#webhook-best-practices).

**Topics**
+ [Conditions préalables](#sample-bitbucket-pull-request-prerequisites)
+ [Étape 1 : créer un projet de build avec Bitbucket et activer les webhooks](#sample-bitbucket-pull-request-create)
+ [Étape 2 : Déclencher un build avec un webhook Bitbucket](#sample-bitbucket-pull-request-trigger)

## Conditions préalables
<a name="sample-bitbucket-pull-request-prerequisites"></a>

 Pour exécuter cet exemple, vous devez connecter votre AWS CodeBuild projet à votre compte Bitbucket. 

**Note**  
 CodeBuild a mis à jour ses autorisations avec Bitbucket. Si vous avez précédemment connecté votre projet à Bitbucket et que vous recevez maintenant une erreur de connexion Bitbucket, vous devez vous reconnecter pour CodeBuild autoriser la gestion de vos webhooks. 

## Étape 1 : créer un projet de build avec Bitbucket et activer les webhooks
<a name="sample-bitbucket-pull-request-create"></a>

 Les étapes suivantes décrivent comment créer un AWS CodeBuild projet avec Bitbucket comme référentiel source et comment activer les webhooks. 

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Si une page CodeBuild d'informations s'affiche, choisissez **Créer un projet de construction**. Sinon, dans le volet de navigation, développez **Build****, choisissez Build projects**, puis **Create build project**. 

1. Choisissez **Créer un projet de génération**. 

1. Dans **Configuration de projet** :  
**Nom du projet**  
Entrez un nom pour ce projet de construction. Les noms des projets de construction doivent être uniques pour chaque AWS compte. Vous pouvez également inclure une description facultative du projet de construction pour aider les autres utilisateurs à comprendre à quoi sert ce projet.

1. Dans **Source**:  
**Fournisseur de source**  
Choisissez **Bitbucket.** **Suivez les instructions pour vous connecter (ou vous reconnecter) à Bitbucket, puis choisissez Autoriser.**  
**Référentiel**  
Choisissez **Repository dans mon compte Bitbucket.**  
Si vous n'êtes pas encore connecté à votre compte Bitbucket, entrez votre nom d'utilisateur Bitbucket et le mot de passe de l'application, puis sélectionnez **Enregistrer les informations d'identification Bitbucket**.  
**Référentiel Bitbucket**  
Entrez l'URL de votre dépôt Bitbucket.

1. Dans **Événements webhook de la source principale**, sélectionnez ce qui suit. 
**Note**  
La section des **événements du webhook de la source principale** n'est visible que si vous avez choisi **Repository in my Bitbucket account** à l'étape précédente.

   1. Sélectionnez **Rebuild every time a code change is pushed to this repository (Reconstruire à chaque fois qu'une modification de code est transférée dans ce référentiel)** lorsque vous créez votre projet. 

   1. Dans **Event type (Type d'événement)**, choisissez un ou plusieurs événements. 

   1. Pour filtrer le moment où un événement déclenche une génération, sous **Start a build under these conditions (Lancer une génération dans ces conditions)**, ajoutez un ou plusieurs filtres facultatifs. 

   1. Pour filtrer le moment où un événement n'est pas déclenché, sous **Don't start a build under these conditions (Ne pas lancer de génération dans ces conditions)**, ajoutez un ou plusieurs filtres facultatifs. 

   1. Choisissez **Ajouter un groupe de filtres** pour ajouter un autre groupe de filtres, si nécessaire. 

   Pour plus d'informations sur les types d'événements et les filtres Bitbucket Webhook, consultez. [Événements du webhook Bitbucket](bitbucket-webhook.md)

1. Dans **Environment (Environnement)** :  
**Image de l'environnement**  
Sélectionnez l’une des méthodes suivantes :    
Pour utiliser une image Docker gérée par AWS CodeBuild :  
Choisissez **Image gérée**, puis sélectionnez **Système d'exploitation**, **Runtime (s)**, **Image** et **Version de l'image**. Effectuez votre sélection pour **Type d'environnement** si cette option est disponible.  
Pour utiliser une autre image Docker :  
Choisissez **Image personnalisée**. Pour le **type d'environnement**, choisissez **ARM**, **Linux****, Linux GPU** ou **Windows**. Si vous choisissez **Other registry (Autre registre)**, pour **External registry URL (URL du registre externe)**, entrez le nom et la balise de l'image Docker dans Docker Hub au format `docker repository/docker image name`. Si vous choisissez **Amazon ECR**, utilisez le **référentiel Amazon ECR** et l'image **Amazon ECR pour choisir l'image** Docker dans votre compte. AWS   
Pour utiliser une image Docker privée :  
Choisissez **Image personnalisée**. Pour le **type d'environnement**, choisissez **ARM**, **Linux****, Linux GPU** ou **Windows**. Pour **Image registry (Registre de l'image)**, choisissez **Other registry (Autre registre)** et entrez l'ARN des informations d'identification de votre image Docker privée. Les informations d'identification doivent être créées par Secrets Manager. Pour plus d'informations, voir [Qu'est-ce que c'est AWS Secrets Manager ?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) dans le *guide de AWS Secrets Manager l'utilisateur*.  
**Rôle de service**  
Sélectionnez l’une des méthodes suivantes :  
   + Si vous n'avez pas de rôle CodeBuild de service, choisissez **Nouveau rôle de service**. Dans **Role name**, entrez un nom pour le nouveau rôle.
   + Si vous avez un rôle CodeBuild de service, choisissez **Rôle de service existant**. Dans **Role ARN**, choisissez le rôle de service.
Lorsque vous utilisez la console pour créer ou mettre à jour un projet de génération, vous pouvez créer un rôle de CodeBuild service en même temps. Par défaut, le rôle fonctionne avec ce projet de génération uniquement. Si vous utilisez la console pour associer ce rôle de service à un autre projet de génération, le rôle est mis à jour pour fonctionner avec l'autre projet de génération. Un rôle de service peut fonctionner avec 10 projets de génération maximum.

1. Dans **Buildspec, effectuez** l'une des opérations suivantes :
   + Choisissez **Utiliser un fichier buildspec pour utiliser le fichier** buildspec.yml dans le répertoire racine du code source.
   + Choisissez **Insérer des commandes** de génération pour utiliser la console pour insérer des commandes de génération.

   Pour de plus amples informations, veuillez consulter [Référence des spécifications de génération](build-spec-ref.md).

1. Dans **Artefacts**:  
**Type**  
Sélectionnez l’une des méthodes suivantes :  
   + Si vous ne souhaitez pas créer d'artefacts de sortie de génération, choisissez **Aucun artefact**.
   + Pour stocker le résultat du build dans un compartiment S3, choisissez **Amazon S3**, puis procédez comme suit :
     + Si vous souhaitez utiliser votre nom de projet pour le dossier ou le fichier ZIP de sortie de génération, ne renseignez pas le champ **Nom**. Sinon, entrez le nom. Par défaut, le nom d'un artefact est le nom du projet. Si vous souhaitez utiliser un autre nom, entrez-le dans la zone Nom des artefacts. Si vous souhaitez générer un fichier ZIP, incluez l'extension zip.
     + Pour **Nom du compartiment**, choisissez le nom du compartiment de sortie.
     + Si vous avez sélectionné **Insérer des commandes de génération** précédemment dans cette procédure, pour **Fichiers de sortie**, saisissez les emplacements des fichiers de la génération que vous souhaitez placer dans le dossier ou le fichier ZIP de sortie de génération. Pour plusieurs emplacements, séparez ceux-ci avec une virgule (par exemple, `appspec.yml, target/my-app.jar`). Pour de plus amples informations, consultez la description de `files` dans [Syntaxe d'un fichier buildspec](build-spec-ref.md#build-spec-ref-syntax).  
**Configuration supplémentaire**  
Développez **Additional configuration (Configuration supplémentaire)** et définissez les options dont vous avez besoin.

1. Choisissez **Créer un projet de génération**. Sur la page **Révision**, choisissez **Démarrer la génération** pour exécuter la génération.

## Étape 2 : Déclencher un build avec un webhook Bitbucket
<a name="sample-bitbucket-pull-request-trigger"></a>

Pour un projet qui utilise des webhooks Bitbucket, AWS CodeBuild crée une version lorsque le référentiel Bitbucket détecte une modification dans votre code source. 

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Dans le volet de navigation, choisissez **Projets de génération**, puis sélectionnez un projet associés à un référentiel Bitbucket avec webhooks. Pour plus d'informations sur la création d'un projet Webhook Bitbucket, consultez. [Étape 1 : créer un projet de build avec Bitbucket et activer les webhooks](#sample-bitbucket-pull-request-create) 

1. Modifiez le code du référentiel Bitbucket de votre projet. 

1. Créez une demande d'extraction sur votre référentiel Bitbucket. Pour de plus amples informations, veuillez consulter des informations sur la [création d'une demande d'extraction](https://www.atlassian.com/git/tutorials/making-a-pull-request). 

1. Dans la page des webhooks Bitbucket, choisissez **View request (Afficher la demande)** pour afficher la liste des événements récents. 

1. Choisissez **Afficher les détails** pour voir les détails de la réponse renvoyée par CodeBuild. Elle peut ressembler à ceci : 

   ```
   "response":"Webhook received and build started: https://us-east-1.console.aws.amazon.com/codebuild/home..."
   "statusCode":200
   ```

1. Accédez à la page de demande d'extraction Bitbucket pour voir le statut de la génération. 

# Exécutez l'exemple de serveur d' GitHub entreprise pour CodeBuild
<a name="sample-github-enterprise"></a>

AWS CodeBuild prend en charge GitHub Enterprise Server en tant que référentiel source. Cet exemple montre comment configurer vos CodeBuild projets lorsqu'un certificat est installé dans votre référentiel GitHub Enterprise Server. Il montre également comment activer les webhooks afin de CodeBuild recompiler le code source chaque fois qu'une modification de code est transmise à votre référentiel GitHub Enterprise Server.

**Topics**
+ [Conditions préalables](#sample-github-enterprise-prerequisites)
+ [Étape 1 : créer un projet de build avec GitHub Enterprise Server et activer les webhooks](#sample-github-enterprise-running)

## Conditions préalables
<a name="sample-github-enterprise-prerequisites"></a>

1. Générez un jeton d'accès personnel pour votre CodeBuild projet. Nous vous recommandons de créer un utilisateur GitHub Enterprise et de générer un jeton d'accès personnel pour cet utilisateur. Copiez-le dans votre presse-papiers afin de pouvoir l'utiliser lors de la création de votre CodeBuild projet. Pour plus d'informations, consultez la section [Création d'un jeton d'accès personnel pour la ligne de commande](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) sur le site Web d' GitHub aide.

   Lorsque vous créez le jeton d'accès personnel, incluez la portée du **référentiel** dans la définition.  
![\[La portée du dépôt dans la définition.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/scopes.png)

1. Téléchargez votre certificat depuis GitHub Enterprise Server. CodeBuild utilise le certificat pour établir une connexion SSL fiable avec le référentiel.

   **Clients Linux/macOS :**

   À partir d'une fenêtre de terminal , exécutez la commande suivante :

   ```
   echo -n | openssl s_client -connect HOST:PORTNUMBER \
       | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /folder/filename.pem
   ```

   Remplacez les espaces réservés de la commande par les valeurs suivantes :

   *HOST*. Adresse IP de votre référentiel GitHub Enterprise Server.

   *PORTNUMBER*. Le numéro de port que vous utilisez pour vous connecter (par exemple, 443).

   *folder*. Le dossier dans lequel vous avez téléchargé votre certificat.

   *filename*. Le nom de fichier de votre fichier de certificat.
**Important**  
Enregistrez le certificat en tant que fichier .pem.

   **Clients Windows:**

   Utilisez votre navigateur pour télécharger votre certificat depuis GitHub Enterprise Server. Pour afficher les détails de certificat du site, choisissez l'icône en forme de cadenas. Pour plus d'informations sur la manière d'exporter le certificat, consultez la documentation de votre navigateur.
**Important**  
Enregistrez le certificat en tant que fichier .pem.

1. Chargez votre fichier de certificat dans un compartiment S3. Pour de plus amples informations sur la façon de créer un compartiment S3, veuillez consulter [Comment créer un compartiment S3 ?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) Pour de plus amples informations sur le chargement d'objets dans un compartiment S3, veuillez consulter [Comment charger des fichiers ou dossiers vers un compartiment ?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)
**Note**  
Ce compartiment doit se trouver dans la même AWS région que vos builds. Par exemple, si vous demandez d' CodeBuild exécuter un build dans la région USA Est (Ohio), le bucket doit se trouver dans la région USA Est (Ohio).

## Étape 1 : créer un projet de build avec GitHub Enterprise Server et activer les webhooks
<a name="sample-github-enterprise-running"></a>

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Si une page CodeBuild d'informations s'affiche, choisissez **Créer un projet de construction**. Sinon, dans le volet de navigation, développez **Build****, choisissez Build projects**, puis **Create build project**. 

1. Dans **Nom du projet**, saisissez un nom pour ce projet de génération. Les noms des projets de construction doivent être uniques pour chaque AWS compte. Vous pouvez également inclure une description facultative du projet de construction pour aider les autres utilisateurs à comprendre à quoi sert ce projet.

1. Dans **Source**, dans **Source provider**, choisissez **GitHub Enterprise Server**.
   + Choisissez **Gérer les informations d'identification du compte**, puis sélectionnez **Jeton d'accès personnel**. Pour **Service**, choisissez **Secrets Manager (recommandé)** et configurez votre secret. Ensuite**, dans Jeton d'accès personnel GitHub Enterprise**, entrez votre jeton d'accès personnel et choisissez **Enregistrer**.
   + Dans **URL du référentiel**, saisissez le chemin d'accès à votre référentiel, y compris le nom du référentiel.
   + Développez **Additional configuration (Configuration supplémentaire)**.
   + Sélectionnez **Rebuild every time a code change is pushed to this repository (Regénérer chaque fois qu'une modification de code est transmise à ce référentiel)** pour regénérer chaque fois qu'une modification de code est transmise à ce référentiel.
   + Sélectionnez **Activer le protocole SSL non sécurisé** pour ignorer les avertissements SSL lorsque vous vous connectez au référentiel de votre projet GitHub Enterprise Server.
**Note**  
Nous vous recommandons d'utiliser **Insecure SSL (SSL non sécurisé)** uniquement pour les tests. Cette option ne doit pas être utilisée dans un environnement de production.  
![\[Configuration du référentiel du projet GitHub Enterprise Server.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/github-enterprise.png)

1. Dans **Environment (Environnement)** :

   Pour **Image d'environnement**, effectuez l'une des actions suivantes :
   + Pour utiliser une image Docker gérée par AWS CodeBuild, choisissez **Image gérée**, puis sélectionnez **Système d'exploitation**, **Runtime (s)**, **Image** et **Version de l'image**. Effectuez votre sélection pour **Type d'environnement** si cette option est disponible.
   + Pour utiliser une autre image Docker, choisissez **Image personnalisée**. Pour le **type d'environnement**, choisissez **ARM**, **Linux****, Linux GPU** ou **Windows**. Si vous choisissez **Other registry (Autre registre)**, pour **External registry URL (URL du registre externe)**, entrez le nom et la balise de l'image Docker dans Docker Hub au format `docker repository/docker image name`. Si vous choisissez **Amazon ECR**, utilisez le **référentiel Amazon ECR** et l'image **Amazon ECR pour choisir l'image** Docker dans votre compte. AWS 
   + Pour utiliser une image Docker privée, choisissez **Image personnalisée**. Pour le **type d'environnement**, choisissez **ARM**, **Linux****, Linux GPU** ou **Windows**. Pour **Image registry (Registre de l'image)**, choisissez **Other registry (Autre registre)** et entrez l'ARN des informations d'identification de votre image Docker privée. Les informations d'identification doivent être créées par Secrets Manager. Pour plus d'informations, consultez [Présentation de AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) dans le *Guide de l'utilisateur AWS Secrets Manager *.

1. Dans **Rôle du service**, sélectionnez l'une des options suivantes :
   + Si vous n'avez pas de rôle CodeBuild de service, choisissez **Nouveau rôle de service**. Dans **Role name**, entrez un nom pour le nouveau rôle.
   + Si vous avez un rôle CodeBuild de service, choisissez **Rôle de service existant**. Dans **Role ARN**, choisissez le rôle de service.
**Note**  
Lorsque vous utilisez la console pour créer ou mettre à jour un projet de génération, vous pouvez créer un rôle de CodeBuild service en même temps. Par défaut, le rôle fonctionne avec ce projet de génération uniquement. Si vous utilisez la console pour associer ce rôle de service à un autre projet de génération, le rôle est mis à jour pour fonctionner avec l'autre projet de génération. Un rôle de service peut fonctionner avec 10 projets de génération maximum.

1. Développez **Additional configuration (Configuration supplémentaire)**.

   Si vous souhaitez CodeBuild travailler avec votre VPC :
   + Pour le **VPC**, choisissez l'ID du VPC qui utilise. CodeBuild 
   + Pour les sous-réseaux **VPC, choisissez les sous-réseaux** qui incluent les ressources qui utilisent. CodeBuild 
   + Pour les **groupes de sécurité VPC**, choisissez les groupes de sécurité CodeBuild utilisés pour autoriser l'accès aux ressources du. VPCs

   Pour de plus amples informations, veuillez consulter [Utilisation AWS CodeBuild avec Amazon Virtual Private Cloud](vpc-support.md).

1. Dans **Buildspec, effectuez** l'une des opérations suivantes :
   + Choisissez **Utiliser un fichier buildspec pour utiliser le fichier** buildspec.yml dans le répertoire racine du code source.
   + Choisissez **Insérer des commandes** de génération pour utiliser la console pour insérer des commandes de génération.

   Pour de plus amples informations, veuillez consulter [Référence des spécifications de génération](build-spec-ref.md).

1. Dans **Artefacts**, pour **Type**, effectuez l'une des actions suivantes :
   + Si vous ne souhaitez pas créer d'artefacts de sortie de génération, choisissez **Aucun artefact**.
   + Pour stocker le résultat du build dans un compartiment S3, choisissez **Amazon S3**, puis procédez comme suit :
     + Si vous souhaitez utiliser votre nom de projet pour le dossier ou le fichier ZIP de sortie de génération, ne renseignez pas le champ **Nom**. Sinon, entrez le nom. Par défaut, le nom d'un artefact est le nom du projet. Si vous souhaitez utiliser un autre nom, entrez-le dans la zone Nom des artefacts. Si vous souhaitez générer un fichier ZIP, incluez l'extension zip.
     + Pour **Nom du compartiment**, choisissez le nom du compartiment de sortie.
     + Si vous avez sélectionné **Insérer des commandes de génération** précédemment dans cette procédure, pour **Fichiers de sortie**, saisissez les emplacements des fichiers de la génération que vous souhaitez placer dans le dossier ou le fichier ZIP de sortie de génération. Pour plusieurs emplacements, séparez ceux-ci avec une virgule (par exemple, `appspec.yml, target/my-app.jar`). Pour de plus amples informations, consultez la description de `files` dans [Syntaxe d'un fichier buildspec](build-spec-ref.md#build-spec-ref-syntax).

1. Pour **Cache type (Type de cache)**, choisissez l'une des valeurs suivantes :
   + Si vous ne souhaitez pas utiliser un cache, choisissez **Aucun cache**.
   + Si vous souhaitez utiliser un cache Amazon S3, choisissez **Amazon S3**, puis procédez comme suit :
     + Pour **Compartiment**, choisissez le nom du compartiment S3 dans lequel le cache est stocké.
     + (Facultatif) Pour **le préfixe de chemin du cache**, entrez un préfixe de chemin Amazon S3. La valeur **Cache path prefix (Préfixe du chemin de cache)** est semblable à un nom de répertoire. Cela vous permet de stocker le cache sous le même répertoire au sein d'un compartiment. 
**Important**  
N'ajoutez pas de barre oblique de fin (/) à la fin du préfixe du chemin.
   +  Si vous souhaitez utiliser un cache local, choisissez **Local**, puis sélectionnez une ou plusieurs modes de cache local. 
**Note**  
Le mode de cache de couche Docker est disponible pour Linux uniquement. Si vous choisissez ce mode, votre projet doit être exécuté en mode privilégié. 

   L'utilisation d'un cache permet de gagner beaucoup de temps de génération, car les parties réutilisables de l'environnement de génération sont stockées dans le cache et utilisées d'une génération à l'autre. Pour de plus amples informations sur la spécification d'un cache dans le fichier de spécification de génération, consultez [Syntaxe d'un fichier buildspec](build-spec-ref.md#build-spec-ref-syntax). Pour plus d'informations sur la mise en cache, consultez [Des mises en cache pour améliorer les performances](build-caching.md). 

1. Choisissez **Créer un projet de génération**. Sur la page de projet de génération, choisissez **Démarrer la génération**.

# Exécutez l'exemple de GitHub pull request et de filtre webhook pour CodeBuild
<a name="sample-github-pull-request"></a>

AWS CodeBuild prend en charge les webhooks lorsque le référentiel source l'est GitHub. Cela signifie que pour un projet de CodeBuild compilation dont le code source est stocké dans un GitHub référentiel, les webhooks peuvent être utilisés pour reconstruire le code source chaque fois qu'une modification de code est envoyée au référentiel. Pour CodeBuild des exemples, voir [AWS CodeBuild Échantillons](https://github.com/aws-samples/aws-codebuild-samples).

**Note**  
Lors de l'utilisation de webhooks, il est possible pour un utilisateur de déclencher une compilation inattendue. Pour atténuer ce risque, voir[Bonnes pratiques d'utilisation des webhooks](webhooks.md#webhook-best-practices).

**Topics**
+ [Étape 1 : créer un projet de construction avec GitHub et activer les webhooks](#sample-github-pull-request-running)
+ [Étape 2 : Vérifiez que les webhooks sont activés](#verification-checks)

## Étape 1 : créer un projet de construction avec GitHub et activer les webhooks
<a name="sample-github-pull-request-running"></a>

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Si une page CodeBuild d'informations s'affiche, choisissez **Créer un projet de construction**. Sinon, dans le volet de navigation, développez **Build****, choisissez Build projects**, puis **Create build project**. 

1. Choisissez **Créer un projet de génération**. 

1. Dans **Configuration de projet** :  
**Nom du projet**  
Entrez un nom pour ce projet de construction. Les noms des projets de construction doivent être uniques pour chaque AWS compte. Vous pouvez également inclure une description facultative du projet de construction pour aider les autres utilisateurs à comprendre à quoi sert ce projet.

1. Dans **Source**:  
**Fournisseur de source**  
Sélectionnez **GitHub**. Suivez les instructions pour vous connecter (ou vous reconnecter) à, GitHub puis choisissez **Autoriser**.  
**Référentiel**  
Choisissez **Repository dans mon GitHub compte**.  
**GitHub référentiel**  
Entrez l'URL de votre GitHub dépôt.

1. Dans **Événements webhook de la source principale**, sélectionnez ce qui suit.
**Note**  
La section des **événements du webhook de la source principale** n'est visible que si vous avez choisi **Repository dans mon GitHub compte** à l'étape précédente.

   1. Sélectionnez **Rebuild every time a code change is pushed to this repository (Reconstruire à chaque fois qu'une modification de code est transférée dans ce référentiel)** lorsque vous créez votre projet. 

   1. Dans **Event type (Type d'événement)**, choisissez un ou plusieurs événements. 

   1. Pour filtrer le moment où un événement déclenche une génération, sous **Start a build under these conditions (Lancer une génération dans ces conditions)**, ajoutez un ou plusieurs filtres facultatifs. 

   1. Pour filtrer le moment où un événement n'est pas déclenché, sous **Don't start a build under these conditions (Ne pas lancer de génération dans ces conditions)**, ajoutez un ou plusieurs filtres facultatifs. 

   1. Choisissez **Ajouter un groupe de filtres** pour ajouter un autre groupe de filtres, si nécessaire. 

   Pour plus d'informations sur les types d'événements et les filtres GitHub Webhook, consultez[GitHub événements webhook](github-webhook.md).

1. Dans **Environment (Environnement)** :  
**Image de l'environnement**  
Sélectionnez l’une des méthodes suivantes :    
Pour utiliser une image Docker gérée par AWS CodeBuild :  
Choisissez **Image gérée**, puis sélectionnez **Système d'exploitation**, **Runtime (s)**, **Image** et **Version de l'image**. Effectuez votre sélection pour **Type d'environnement** si cette option est disponible.  
Pour utiliser une autre image Docker :  
Choisissez **Image personnalisée**. Pour le **type d'environnement**, choisissez **ARM**, **Linux****, Linux GPU** ou **Windows**. Si vous choisissez **Other registry (Autre registre)**, pour **External registry URL (URL du registre externe)**, entrez le nom et la balise de l'image Docker dans Docker Hub au format `docker repository/docker image name`. Si vous choisissez **Amazon ECR**, utilisez le **référentiel Amazon ECR** et l'image **Amazon ECR pour choisir l'image** Docker dans votre compte. AWS   
Pour utiliser une image Docker privée :  
Choisissez **Image personnalisée**. Pour le **type d'environnement**, choisissez **ARM**, **Linux****, Linux GPU** ou **Windows**. Pour **Image registry (Registre de l'image)**, choisissez **Other registry (Autre registre)** et entrez l'ARN des informations d'identification de votre image Docker privée. Les informations d'identification doivent être créées par Secrets Manager. Pour plus d'informations, voir [Qu'est-ce que c'est AWS Secrets Manager ?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) dans le *guide de AWS Secrets Manager l'utilisateur*.  
**Rôle de service**  
Sélectionnez l’une des méthodes suivantes :  
   + Si vous n'avez pas de rôle CodeBuild de service, choisissez **Nouveau rôle de service**. Dans **Role name**, entrez un nom pour le nouveau rôle.
   + Si vous avez un rôle CodeBuild de service, choisissez **Rôle de service existant**. Dans **Role ARN**, choisissez le rôle de service.
Lorsque vous utilisez la console pour créer ou mettre à jour un projet de génération, vous pouvez créer un rôle de CodeBuild service en même temps. Par défaut, le rôle fonctionne avec ce projet de génération uniquement. Si vous utilisez la console pour associer ce rôle de service à un autre projet de génération, le rôle est mis à jour pour fonctionner avec l'autre projet de génération. Un rôle de service peut fonctionner avec 10 projets de génération maximum.

1. Dans **Buildspec, effectuez** l'une des opérations suivantes :
   + Choisissez **Utiliser un fichier buildspec pour utiliser le fichier** buildspec.yml dans le répertoire racine du code source.
   + Choisissez **Insérer des commandes** de génération pour utiliser la console pour insérer des commandes de génération.

   Pour de plus amples informations, veuillez consulter [Référence des spécifications de génération](build-spec-ref.md).

1. Dans **Artefacts**:  
**Type**  
Sélectionnez l’une des méthodes suivantes :  
   + Si vous ne souhaitez pas créer d'artefacts de sortie de génération, choisissez **Aucun artefact**.
   + Pour stocker le résultat du build dans un compartiment S3, choisissez **Amazon S3**, puis procédez comme suit :
     + Si vous souhaitez utiliser votre nom de projet pour le dossier ou le fichier ZIP de sortie de génération, ne renseignez pas le champ **Nom**. Sinon, entrez le nom. Par défaut, le nom d'un artefact est le nom du projet. Si vous souhaitez utiliser un autre nom, entrez-le dans la zone Nom des artefacts. Si vous souhaitez générer un fichier ZIP, incluez l'extension zip.
     + Pour **Nom du compartiment**, choisissez le nom du compartiment de sortie.
     + Si vous avez sélectionné **Insérer des commandes de génération** précédemment dans cette procédure, pour **Fichiers de sortie**, saisissez les emplacements des fichiers de la génération que vous souhaitez placer dans le dossier ou le fichier ZIP de sortie de génération. Pour plusieurs emplacements, séparez ceux-ci avec une virgule (par exemple, `appspec.yml, target/my-app.jar`). Pour de plus amples informations, consultez la description de `files` dans [Syntaxe d'un fichier buildspec](build-spec-ref.md#build-spec-ref-syntax).  
**Configuration supplémentaire**  
Développez **Additional configuration (Configuration supplémentaire)** et définissez les options dont vous avez besoin.

1. Choisissez **Créer un projet de génération**. Sur la page **Révision**, choisissez **Démarrer la génération** pour exécuter la génération.

## Étape 2 : Vérifiez que les webhooks sont activés
<a name="verification-checks"></a>

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Dans le volet de navigation, choisissez **Projets de génération**.

1. Effectuez l’une des actions suivantes :
   + Cliquez sur le lien du projet de build avec des webhooks que vous souhaitez réviser, puis choisissez **Build details (Détails de build)**.
   + Cliquez sur le bouton à côté du projet de génération avec les webhooks que vous souhaitez vérifier, choisissez **Afficher les détails**, puis choisissez l'onglet **Détails de la construction**.

1. Dans **Événements du webhook de la source principale**, choisissez le lien URL du **webhook**. 

1. Dans votre GitHub dépôt, sur la page **Paramètres**, sous **Webhooks**, vérifiez que les **Pull Requests** et **Push sont sélectionnés**.

1. Dans les paramètres de votre GitHub profil, sous **Paramètres personnels**, **Applications**, ** OAuthApplications autorisées**, vous devriez voir que votre application a été autorisée à accéder à la AWS région que vous avez sélectionnée.

# Tutoriel : signature de code Apple avec Fastlane lors de CodeBuild l'utilisation de S3 pour le stockage de certificats
<a name="sample-fastlane"></a>

[fastlane](https://docs.fastlane.tools/) est un outil d'automatisation open source populaire qui permet d'automatiser les déploiements et les versions bêta de vos applications iOS et Android. Il gère toutes les tâches fastidieuses, comme la génération de captures d'écran, la signature de code et la publication de votre application.

## Conditions préalables
<a name="sample-fastlane-prerequisites"></a>

Pour terminer ce didacticiel, vous devez d'abord avoir configuré les éléments suivants :
+ Un Compte AWS
+ Un [compte Apple Developer](https://developer.apple.com/)
+ Un compartiment S3 pour le stockage des certificats
+ fastlane installé dans votre projet - [Guide](https://docs.fastlane.tools/getting-started/ios/setup/) d'installation de fastlane

## Étape 1 : configurer Fastlane Match avec S3 sur votre machine locale
<a name="sample-fastlane-S3"></a>

[Fastlane Match](https://docs.fastlane.tools/actions/match/) est l'un des [outils de Fastlane](https://fastlane.tools/). Il permet une configuration fluide pour la signature de code, à la fois dans votre environnement de développement local et ailleurs. CodeBuild Fastlane Match stocke tous vos certificats de signature de code et profils de provisionnement dans un stockage Git repository/S3 Bucket/Google Cloud, et télécharge et installe les certificats et profils nécessaires en cas de besoin.

Dans cet exemple de configuration, vous allez configurer et utiliser un compartiment Amazon S3 pour le stockage. 

****

1. Initialisez match dans votre projet :

   ```
   fastlane match init
   ```

1. Lorsque vous y êtes invité, choisissez S3 comme mode de stockage.

1. Mettez à jour votre « *Matchfile* » pour utiliser S3 :

   ```
   storage_mode("s3")
      s3_bucket("your-s3-bucket-name")
      s3_region("your-aws-region")
      type("appstore") # The default type, can be: appstore, adhoc, enterprise or development
   ```

## Étape 2 : Configurez votre Fastfile
<a name="sample-fastlane-S3-fastfile"></a>

Créez ou mettez à jour votre `Fastfile` avec la ligne suivante.

Activé CodeBuild, Fastlane Match devra être exécuté chaque fois que vous créez et signez votre application. Le moyen le plus simple de le faire est d'ajouter l'`match`action à la voie qui crée votre application.

```
default_platform(:ios)

platform :ios do
  before_all do
    setup_ci
  end
  
  desc "Build and sign the app"
  lane :build do
    match(type: "appstore", readonly: true)
    gym(
      scheme: "YourScheme",
      export_method: "app-store"
    )
  end
end
```

**Note**  
Assurez-vous d'ajouter des `setup_ci` éléments à la `before_all ` section `Fastfile` pour que l'action de match fonctionne correctement. Cela garantit qu'un trousseau Fastlane temporaire doté des autorisations appropriées est utilisé. Si vous ne l'utilisez pas, vous risquez de rencontrer des échecs de compilation ou des résultats incohérents. 



## Étape 3 : Exécutez la `fastlane match` commande pour générer les certificats et profils respectifs
<a name="sample-fastlane-S3-certificates"></a>

La commande fastlane match pour le type donné (par exemple, development, appstore, adhoc, enterprise) générera le certificat et le profil s'ils ne sont pas disponibles dans le magasin distant. Les certificats et les profils seront stockés dans S3 par fastlane.

```
bundle exec fastlane match appstore
```

L'exécution de la commande sera interactive et fastlane demandera de définir une phrase secrète pour déchiffrer les certificats.

## Étape 4 : Créez le dossier de candidature pour votre projet
<a name="sample-fastlane-S3-appfile"></a>

Créez ou ajoutez le fichier de candidature en fonction de votre projet.

****

1. Créez ou ajoutez le [Gymfile, Appfile](http://docs.fastlane.tools/actions/gym/#gymfile)[, Snapfile](http://docs.fastlane.tools/advanced/Appfile/)[, [Deliverfile](http://docs.fastlane.tools/actions/deliver/#editing-the-deliverfile)](http://docs.fastlane.tools/actions/snapshot/#snapfile) en fonction des exigences de construction de votre projet.

1. Validez les modifications dans votre dépôt distant

## Étape 5 : Création de variables d'environnement dans Secrets Manager
<a name="sample-fastlane-S3-secrets"></a>

Créez deux secrets pour stocker le cookie de session Fastlane et le mot de passe correspondant. Pour plus d'informations sur la création de secrets dans Secrets Manager, voir [Création d'un AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html).

****

1. Accédez à votre cookie de session Fastlane comme suit.

   1. Clé secrète - `FASTLANE_SESSION`

   1. Valeur secrète : cookie de session généré par l'exécution de la commande suivante sur votre ordinateur local.
**Note**  
Cette valeur est disponible après authentification dans un fichier local :`~/.fastlane/spaceship/my_appleid_username/cookie`.

      ```
      fastlane spaceauth -u <apple account>
      ```

1. Phrase de passe Fastlane Match - Pour permettre à Fastlane Match de déchiffrer les certificats et les profils stockés dans le compartiment S3, il est nécessaire d'ajouter le mot de passe de chiffrement que vous avez configuré à l'étape de configuration de Match aux variables d'environnement du projet. CodeBuild

   1. Clé secrète - `MATCH_PASSWORD`

   1. Valeur secrète -*<match passphrase to decrypt certificates>*. Le mot de passe est défini lors de la génération des certificats à l'étape 3.

**Note**  
Lorsque vous créez les secrets ci-dessus dans Secrets Manager, n'oubliez pas de donner un nom au secret avec le préfixe suivant : `/CodeBuild/`

## Étape 6 : Création d'un parc informatique
<a name="sample-fastlane-S3-fleet"></a>

Créez le parc informatique pour votre projet.

****

1. Dans la console, accédez à CodeBuild et créez un nouveau parc informatique.

1. Choisissez « macOS » comme système d'exploitation et sélectionnez le type de calcul et l'image appropriés.

## Étape 7 : Création d'un projet dans CodeBuild
<a name="sample-fastlane-S3-project"></a>

Créez votre projet dans CodeBuild.



****

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Créez un projet de génération. Pour plus d’informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console) et [Exécution d'une génération (console)](run-build-console.md).

1. Configurez votre fournisseur de source (tel que GitHub, CodeCommit). Il s'agit du référentiel des sources du projet iOS et non du référentiel de certificats.

1.  Dans **Environment (Environnement)** : 
   + Choisissez **Capacité réservée**.
   + Pour **Fleet**, sélectionnez la flotte créée ci-dessus.
   + Indiquez le nom du rôle de service qui CodeBuild sera créé pour vous.
   + Fournissez les variables d'environnement ci-dessous.
     + Nom :`MATCH_PASSWORD`, Valeur :*<secrets arn>*, Type : Secrets Manager (Secrets ARN créé à l'étape 5 pour MATCH\$1PASSWORD)
     + Nom :`FASTLANE_SESSION`, Valeur :*<secrets arn>*, Type : Secrets Manager (ARN de secrets créé à l'étape 5 pour FASTLANE\$1SESSION)

1. Dans **Buildspec**, ajoutez ce qui suit :

   ```
   version: 0.2
   
   phases:
     install:
       commands:
         - gem install bundler
         - bundle install
     build:
       commands:
         - echo "Building and signing the app..."
         - bundle exec fastlane build
     post_build:
       commands:
         - echo "Build completed on date"
   
   artifacts:
     files:
       - '*/.ipa'
     name: app-$(date +%Y-%m-%d)
   ```

## Étape 8 : Configuration du rôle IAM
<a name="sample-fastlane-S3-role"></a>

Une fois le projet créé, assurez-vous que le rôle de service de votre CodeBuild projet est autorisé à accéder au compartiment S3 contenant les certificats. Ajoutez la politique suivante au rôle :

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::your-s3-bucket-name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::your-s3-bucket-name/*"
        }
    ]
}
```

------

## Étape 9 : Exécuter le build
<a name="sample-fastlane-S3-run"></a>

Exécutez la génération. Vous pouvez consulter l'état de la construction et vous connecter CodeBuild.

Une fois la tâche terminée, vous pourrez consulter le journal de la tâche.

## Résolution des problèmes
<a name="sample-fastlane-S3-troubleshooting"></a>
+ Si vous rencontrez des problèmes lors de l'extraction des certificats, assurez-vous que vos autorisations IAM sont correctement configurées pour l'accès S3.
+ Si vous rencontrez des problèmes lors du déchiffrement des certificats, assurez-vous de définir le mot de passe correct dans la variable d'environnement MATCH\$1PASSWORD.
+ Pour les problèmes de signature de code, vérifiez que votre compte Apple Developer possède les certificats et profils nécessaires, et que l'identifiant du bundle de votre projet Xcode correspond à celui de votre profil d'approvisionnement.

## Considérations sur la sécurité
<a name="sample-fastlane-considerations"></a>

Les considérations de sécurité suivantes concernent ce didacticiel.
+ Assurez-vous que votre compartiment S3 possède les paramètres de sécurité appropriés, y compris le chiffrement au repos. Assurez-vous en particulier que le bucket n'est pas accessible au public et limitez l'accès uniquement CodeBuild au système qui a besoin d'un accès.
+ Envisagez de l'utiliser AWS Secrets Manager pour stocker des informations sensibles telles que MATCH\$1PASSWORD et FASTLANE\$1SESSION.

Cet exemple fournit une configuration pour la signature de code iOS avec Fastlane lors de CodeBuild l'utilisation d'Amazon S3 pour le stockage de certificats. Vous devrez peut-être ajuster certaines étapes en fonction des exigences et de CodeBuild l'environnement spécifiques de votre projet. Cette approche tire parti des AWS services pour améliorer la sécurité et l'intégration au sein de l' AWS écosystème.

# Tutoriel : signature de code Apple avec Fastlane lors de CodeBuild l'utilisation GitHub pour le stockage de certificats
<a name="sample-fastlane-github"></a>

[fastlane](https://docs.fastlane.tools/) est un outil d'automatisation open source populaire qui permet d'automatiser les déploiements et les versions bêta de vos applications iOS et Android. Il gère toutes les tâches fastidieuses, comme la génération de captures d'écran, la signature de code et la publication de votre application.

Cet exemple montre comment configurer la signature de code Apple à l'aide de Fastlane dans un CodeBuild projet exécuté sur un parc Mac, en GitHub tant que stockage pour les certificats et les profils de provisionnement.

## Conditions préalables
<a name="sample-fastlane-github-prerequisites"></a>

Pour terminer ce didacticiel, vous devez d'abord avoir configuré les éléments suivants :
+ Un Compte AWS
+ Un [compte Apple Developer](https://developer.apple.com/)
+ Un GitHub référentiel privé pour le stockage des certificats
+ fastlane installé dans votre projet - [Guide](https://docs.fastlane.tools/getting-started/ios/setup/) d'installation de fastlane

## Étape 1 : Configurez Fastlane Match avec GitHub sur votre machine locale
<a name="sample-fastlane-github-certificates"></a>

[Fastlane Match](https://docs.fastlane.tools/actions/match/) est l'un des [outils de Fastlane](https://fastlane.tools/). Il permet une configuration fluide pour la signature de code, à la fois dans votre environnement de développement local et ailleurs. CodeBuild Fastlane Match stocke tous vos certificats de signature de code et profils de provisionnement dans un stockage Git repository/S3 Bucket/Google Cloud, et télécharge et installe les certificats et profils nécessaires en cas de besoin.

Dans cet exemple de configuration, nous allons configurer et utiliser un dépôt Git pour le stockage. 

****

1. Initialisez match dans votre projet :

   ```
   fastlane match init
   ```

1. Lorsque vous y êtes invité, choisissez GitHub le mode de stockage.

1. Mettez à jour votre « *Matchfile* » pour utiliser GitHub :

   ```
   git_url("https://github.com/your-username/your-certificate-repo.git")
   storage_mode("git")
   type("development") # The default type, can be: appstore, adhoc, enterprise or development
   ```

**Note**  
Assurez-vous de saisir l'URL HTTPS de votre dépôt Git pour que fastlane puisse s'authentifier et cloner avec succès. Dans le cas contraire, une erreur d'authentification peut s'afficher lorsque vous tentez d'utiliser Match.

## Étape 2 : Configurez votre Fastfile
<a name="sample-fastlane-github-fastfile"></a>

Créez ou mettez à jour votre `Fastfile` avec la ligne suivante.

Activé CodeBuild, Fastlane Match devra être exécuté chaque fois que vous créez et signez votre application. Le moyen le plus simple de le faire est d'ajouter l'`match`action à la voie qui crée votre application.

```
default_platform(:ios)

platform :ios do
  before_all do
    setup_ci
  end
  
  desc "Build and sign the app"
  lane :build do
    match(type: "appstore", readonly: true)
    gym(
      scheme: "YourScheme",
      export_method: "app-store"
    )
  end
end
```

**Note**  
Assurez-vous d'ajouter des `setup_ci` éléments à la `before_all ` section `Fastfile` pour que l'action de match fonctionne correctement. Cela garantit qu'un trousseau Fastlane temporaire doté des autorisations appropriées est utilisé. Si vous ne l'utilisez pas, vous risquez de rencontrer des échecs de compilation ou des résultats incohérents. 

## Étape 3 : Exécutez la `fastlane match` commande pour générer les certificats et profils respectifs
<a name="sample-fastlane-github-certificates"></a>

La commande fastlane match pour le type donné (c'est-à-dire development, appstore, adhoc, enterprise) générera le certificat et le profil s'ils ne sont pas disponibles dans le magasin distant. Les certificats et les profils seront stockés GitHub par Fastlane.

```
bundle exec fastlane match appstore
```

L'exécution de la commande sera interactive et fastlane demandera de définir une phrase secrète pour déchiffrer les certificats.

## Étape 4 : Créez le dossier de candidature pour votre projet
<a name="sample-fastlane-github-appfile"></a>

Créez ou ajoutez le fichier de candidature en fonction de votre projet.

****

1. Créez ou ajoutez le [Gymfile, Appfile](http://docs.fastlane.tools/actions/gym/#gymfile)[, Snapfile](http://docs.fastlane.tools/advanced/Appfile/)[, [Deliverfile](http://docs.fastlane.tools/actions/deliver/#editing-the-deliverfile)](http://docs.fastlane.tools/actions/snapshot/#snapfile) en fonction des exigences de construction de votre projet.

1. Validez les modifications dans votre dépôt distant.

## Étape 5 : Création de variables d'environnement dans Secrets Manager
<a name="sample-fastlane-github-secrets"></a>

Créez trois secrets pour stocker le cookie de session Fastlane et le mot de passe correspondant. Pour plus d'informations sur la création de secrets dans Secrets Manager, voir [Création d'un AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html).

****

1. Accédez à votre cookie de session Fastlane comme suit.

   1. Clé secrète - `FASTLANE_SESSION`

   1. Valeur secrète : cookie de session généré par l'exécution de la commande suivante sur votre ordinateur local.
**Note**  
Cette valeur est disponible après authentification dans un fichier local :`~/.fastlane/spaceship/my_appleid_username/cookie`.

      ```
      fastlane spaceauth -u <Apple_account>
      ```

1. Phrase de passe Fastlane Match - Pour permettre à Fastlane Match de déchiffrer les certificats et les profils stockés dans le référentiel Git, il est nécessaire d'ajouter le mot de passe de chiffrement que vous avez configuré à l'étape de configuration de Match aux variables d'environnement du projet. CodeBuild 

   1. Clé secrète - `MATCH_PASSWORD`

   1. Valeur secrète -`<match passphrase to decrypt certificates>`. Le mot de passe est défini lors de la génération des certificats à l'étape 3.

1. *Fastlane `MATCH_GIT_BASIC_AUTHORIZATION` - définissez une autorisation de base pour le match :*

   1. Clé secrète : 

      `MATCH_GIT_BASIC_AUTHORIZATION`

   1. Valeur secrète - La valeur doit être une chaîne codée en base64 de votre nom d'utilisateur et de votre jeton d'accès personnel (PAT) au format`username:password`. Vous pouvez le générer à l'aide de la commande suivante :

      ```
      echo -n your_github_username:your_personal_access_token | base64
      ```

      Vous pouvez générer votre PAT sur la GitHub console dans **Votre profil > Paramètres > Paramètres des développeurs > Jeton d'accès personnel**. Pour plus d'informations, consultez le guide suivant : [https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing- your-personal-access-tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

**Note**  
Lorsque vous créez les secrets ci-dessus dans Secrets Manager, n'oubliez pas de leur donner un nom avec le préfixe suivant : `/CodeBuild/`

## Étape 6 : Création d'un parc informatique
<a name="sample-fastlane-github-fleet"></a>

Créez le parc informatique pour votre projet.

****

1. Dans la console, accédez à CodeBuild et créez un nouveau parc informatique.

1. Choisissez `macOS` comme système d'exploitation et sélectionnez le type de calcul et l'image appropriés.

## Étape 7 : Création d'un projet dans CodeBuild
<a name="sample-fastlane-github-project"></a>

Créez votre projet dans CodeBuild.

****

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Créez un projet de génération. Pour plus d’informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console) et [Exécution d'une génération (console)](run-build-console.md).

1. Configurez votre fournisseur de source (tel que GitHub, CodeCommit). Il s'agit du référentiel des sources du projet iOS et non du référentiel de certificats.

1.  Dans **Environment (Environnement)** : 
   + Choisissez **Capacité réservée**.
   + Pour **Fleet**, sélectionnez la flotte créée ci-dessus.
   + Indiquez le nom du rôle de service qui CodeBuild sera créé pour vous.
   + Fournissez les variables d'environnement ci-dessous.
     + Nom :`MATCH_PASSWORD`, Valeur :*<secrets arn>*, Type : Secrets Manager (Secrets ARN créé à l'étape 5 pour MATCH\$1PASSWORD)
     + Nom :`FASTLANE_SESSION`, Valeur :*<secrets arn>*, Type : Secrets Manager (ARN de secrets créé à l'étape 5 pour FASTLANE\$1SESSION)
     + Nom :`MATCH_GIT_BASIC_AUTHORIZATION`, Valeur :*<secrets ARN>*, Type : Secrets Manager Secrets ARN (créé à l'étape 5 pour`MATCH_GIT_BASIC_AUTHORIZATION`)

1. Dans **Buildspec**, ajoutez ce qui suit :

   ```
   version: 0.2
   
   phases:
     install:
       commands:
         - gem install bundler
         - bundle install
     build:
       commands:
         - echo "Building and signing the app..."
         - bundle exec fastlane build
     post_build:
       commands:
         - echo "Build completed on date"
   
   artifacts:
     files:
       - '*/.ipa'
     name: app-$(date +%Y-%m-%d)
   ```

## Étape 8 : Exécuter le build
<a name="sample-fastlane-github-run"></a>

Exécutez la génération. Vous pouvez consulter l'état de la construction et vous connecter CodeBuild.

Une fois la tâche terminée, vous pourrez consulter le journal de la tâche.

## Résolution des problèmes
<a name="sample-fastlane-github-troubleshooting"></a>
+ Si vous rencontrez des problèmes pour accéder au GitHub dépôt, vérifiez votre jeton d'accès personnel et la variable d'environnement MATCH\$1GIT\$1BASIC\$1AUTHORIZATION.
+ Si vous rencontrez des problèmes lors du déchiffrement des certificats, assurez-vous de définir le mot de passe correct dans la variable d'environnement MATCH\$1PASSWORD.
+ Pour les problèmes de signature de code, vérifiez que votre compte Apple Developer possède les certificats et profils nécessaires et que l'identifiant du bundle de votre projet Xcode correspond à celui de votre profil d'approvisionnement.

## Considérations sur la sécurité
<a name="sample-fastlane-github-considerations"></a>

Les considérations de sécurité suivantes concernent ce didacticiel.
+ Préservez la GitHub confidentialité de votre référentiel de certificats et contrôlez régulièrement l'accès.
+ Envisagez de l'utiliser AWS Secrets Manager pour stocker des informations sensibles telles que MATCH\$1PASSWORD et FASTLANE\$1SESSION.

Cet exemple fournit une configuration pour la signature de code iOS avec Fastlane lors de CodeBuild l'utilisation GitHub pour le stockage de certificats. Vous devrez peut-être ajuster certaines étapes en fonction des exigences et de CodeBuild l'environnement spécifiques de votre projet. Cette approche tire parti des AWS services pour améliorer la sécurité et l'intégration au sein de l' AWS écosystème.