

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 : Utiliser un clone complet avec une source de CodeCommit pipeline
<a name="tutorials-codecommit-gitclone"></a>

Vous pouvez choisir l'option de clonage complet pour votre action CodeCommit source dans CodePipeline. Utilisez cette option pour autoriser l'accès CodeBuild aux métadonnées Git dans votre action de création de pipeline.

Dans ce didacticiel, vous allez créer un pipeline qui accède à votre CodeCommit dépôt, utilise l'option de clonage complet pour les données source et exécute une CodeBuild version qui clone votre dépôt et exécute les commandes Git pour le référentiel.

**Note**  
CodeBuild les actions sont les seules actions en aval qui prennent en charge l'utilisation des métadonnées Git disponibles avec l'option Git clone. De plus, bien que votre pipeline puisse contenir des actions entre comptes, l' CodeCommitaction et l' CodeBuild action doivent se trouver dans le même compte pour que l'option de clonage complet réussisse.

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

**Topics**
+ [Conditions préalables](#tutorials-codecommit-gitclone-prereq)
+ [Étape 1 : Création d'un fichier README](#tutorials-codecommit-gitclone-file)
+ [Étape 2 : Créez votre pipeline et créez votre projet](#tutorials-codecommit-gitclone-pipeline)
+ [Étape 3 : mettre à jour la politique CodeBuild de rôle de service pour cloner le référentiel](#tutorials-codecommit-gitclone-rolepolicy)
+ [Étape 4 : Afficher les commandes du référentiel dans la sortie de compilation](#tutorials-codecommit-gitclone-view)

## Conditions préalables
<a name="tutorials-codecommit-gitclone-prereq"></a>

Avant de commencer, vous devez créer un CodeCommit référentiel dans le même AWS compte et dans la même région que votre pipeline.

## Étape 1 : Création d'un fichier README
<a name="tutorials-codecommit-gitclone-file"></a>

Suivez ces étapes pour ajouter un fichier README à votre référentiel source. Le fichier README fournit un exemple de fichier source pour l'action CodeBuild en aval à lire.

**Pour ajouter un fichier README**

1. Connectez-vous à votre dépôt et choisissez votre dépôt.

1. Pour créer un nouveau fichier, choisissez **Ajouter un fichier > Créer un fichier**. Nommez le fichier`README.md`... fichier et ajoutez le texte suivant.

   ```
   This is a CodeCommit repository!
   ```

1. Choisissez **Valider les modifications**.

   Assurez-vous que le fichier `README.md` est au niveau racine de votre référentiel.

## Étape 2 : Créez votre pipeline et créez votre projet
<a name="tutorials-codecommit-gitclone-pipeline"></a>

Dans cette section, vous créez un pipeline avec les actions suivantes :
+ Un stage source avec une action CodeCommit source.
+ Une phase de construction avec une action de AWS CodeBuild construction.

**Pour créer un pipeline avec l'assistant**

1. Connectez-vous à la CodePipeline console à l'adresse [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Sur la page **Bienvenue**, **Démarrez** ou **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. À **l'étape 2 : Choisissez les paramètres du pipeline**, dans **Nom du pipeline**, entrez**MyCodeCommitPipeline**.

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 du service**, sélectionnez l'une des options suivantes :
   + Choisissez **Existing service role (Rôle de service existant)**.
   + Choisissez votre rôle CodePipeline de service actuel. Ce rôle doit disposer de l'autorisation `codecommit:GetRepository` IAM relative à votre politique de rôle de service. Voir [Ajouter des autorisations au rôle CodePipeline de service](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-iam.html#how-to-update-role-new-services).

1. Sous **Paramètres avancés**, conservez les valeurs par défaut. Choisissez **Suivant**.

1. Sur la page **Étape 3 : Ajouter un stage source**, procédez comme suit :

   1. Dans **Fournisseur de source**, choisissez **CodeCommit**.

   1. Dans **Nom du dépôt**, choisissez le nom de votre dépôt.

   1. Dans **Nom de la succursale**, choisissez le nom de votre succursale.

   1. Veillez à ce que l'option **Démarrer le pipeline lors de la modification du code source** soit sélectionnée.

   1. Sous **Format d'artefact de sortie**, choisissez **Full clone** pour activer l'option Git clone pour le référentiel source. Seules les actions fournies par CodeBuild peuvent utiliser l'option Git clone. 

   Choisissez **Suivant**.

1. À **l'étape 4 : Ajouter une phase de construction**, procédez comme suit :

   1. Dans le champ **Fournisseur de génération**, 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.**

   1. Pour **Rôle de service**, choisissez **Nouveau rôle de service**.
**Note**  
Notez le nom de votre rôle CodeBuild de service. Vous aurez besoin du nom du rôle pour la dernière étape de ce didacticiel.

   1. Sous **Buildspec**, pour **Build specifications (Spécifications de génération)**, choisissez **Insert build commands (Insérer des commandes de génération)**. Choisissez **Passer à l'éditeur**, puis sous **Commandes de génération**, collez le code suivant.

      ```
      version: 0.2
      
      env:
        git-credential-helper: yes
      phases:
        install:
          #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions.
          #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails.
          runtime-versions:
            nodejs: 12
            # name: version
          #commands:
            # - command
            # - command
        pre_build:
          commands:
            - ls -lt
            - cat README.md
        build:
          commands:
            - git log | head -100
            - git status
            - ls
            - git describe --all
        #post_build:
          #commands:
            # - command
            # - command
      #artifacts:
        #files:
          # - location
        #name: $(date +%Y-%m-%d)
        #discard-paths: yes
        #base-directory: location
      #cache:
        #paths:
          # - paths
      ```

   1. Choisissez **Continuer vers CodePipeline**. Cela vous ramène à la CodePipeline console et crée un CodeBuild projet qui utilise vos commandes de génération 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**.

## Étape 3 : mettre à jour la politique CodeBuild de rôle de service pour cloner le référentiel
<a name="tutorials-codecommit-gitclone-rolepolicy"></a>

L'exécution initiale du pipeline échouera car vous devez mettre à jour le rôle de CodeBuild service avec les autorisations nécessaires pour extraire des données de votre référentiel.

Ajoutez l'autorisation `codecommit:GitPull` IAM à votre politique de rôle de service. Pour obtenir des instructions sur la mise à jour de la politique dans la console IAM, consultez[Ajouter CodeBuild GitClone des autorisations pour les actions CodeCommit source](troubleshooting.md#codebuild-role-codecommitclone).

## Étape 4 : Afficher les commandes du référentiel dans la sortie de compilation
<a name="tutorials-codecommit-gitclone-view"></a>

**Pour afficher le résultat de la compilation**

1. Lorsque votre rôle de service est correctement mis à jour, choisissez **Réessayer** en cas d'échec CodeBuild .

1. Une fois le pipeline exécuté avec succès, lors de la phase de construction réussie, choisissez **Afficher les détails**.

   Sur la page de détails, choisissez l'onglet **Logs**. Affichez le résultat CodeBuild de la compilation. Les commandes produisent la valeur de la variable saisie.

   Les commandes affichent le contenu du `README.md` fichier, répertorient les fichiers du répertoire, clonent le référentiel, affichent le journal et s'exécutent`git describe --all`. 