

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Tutorial: Utilice un clon completo con una fuente de CodeCommit canalización
<a name="tutorials-codecommit-gitclone"></a>

Puedes elegir la opción de clonación completa para tu acción CodeCommit fuente en CodePipeline. Usa esta opción para permitir el acceso CodeBuild a los metadatos de Git en la acción de creación de tu canalización.

En este tutorial, crearás una canalización que acceda a tu CodeCommit repositorio, usará la opción de clonación completa para los datos de origen y ejecutará una CodeBuild compilación que clona tu repositorio y ejecutará comandos de Git para el repositorio.

**nota**  
CodeBuild las acciones son las únicas acciones posteriores que admiten el uso de los metadatos de Git disponibles con la opción de clonación de Git. Además, aunque tu canalización puede contener acciones multicuenta, la CodeCommit acción y la CodeBuild acción deben estar en la misma cuenta para que la opción de clonación completa funcione correctamente.

**importante**  
Como parte de la creación de una canalización, se utilizará un depósito de artefactos de S3 proporcionado por el cliente CodePipeline para guardar artefactos. (Es diferente del bucket que se usa para una acción de origen de S3). Si el depósito de artefactos de S3 está en una cuenta diferente a la de tu canalización, asegúrate de que el depósito de artefactos de S3 pertenezca a una Cuentas de AWS persona segura y fiable.

**Topics**
+ [

## Requisitos previos
](#tutorials-codecommit-gitclone-prereq)
+ [

## Paso 1: Crear un archivo README
](#tutorials-codecommit-gitclone-file)
+ [

## Paso 2: Crear la canalización y compilar el proyecto
](#tutorials-codecommit-gitclone-pipeline)
+ [

## Paso 3: actualice la política CodeBuild de roles de servicio para clonar el repositorio
](#tutorials-codecommit-gitclone-rolepolicy)
+ [

## Paso 4: Ver comandos del repositorio en el resultado de la compilación
](#tutorials-codecommit-gitclone-view)

## Requisitos previos
<a name="tutorials-codecommit-gitclone-prereq"></a>

Antes de empezar, debes crear un CodeCommit repositorio en la misma AWS cuenta y región que tu canalización.

## Paso 1: Crear un archivo README
<a name="tutorials-codecommit-gitclone-file"></a>

Siga estos pasos para añadir un archivo README a su repositorio de origen. El archivo README proporciona un ejemplo de archivo fuente para que lo lea la acción CodeBuild descendente.

**Para añadir un archivo README**

1. Inicie sesión en su repositorio y elija su repositorio.

1. Para crear un nuevo archivo, seleccione **Añadir archivo > Crear archivo**. Asigne un nombre al archivo `README.md`. y añada el siguiente texto.

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

1. Seleccione **Confirmar cambios**.

   Asegúrese de que el archivo `README.md` está en el nivel raíz del repositorio.

## Paso 2: Crear la canalización y compilar el proyecto
<a name="tutorials-codecommit-gitclone-pipeline"></a>

En esta sección, debe crear una canalización con las siguientes acciones:
+ Una etapa de origen con una acción de CodeCommit origen.
+ Una etapa de construcción con una acción de AWS CodeBuild construcción.

**Para crear una canalización con el asistente**

1. Inicia sesión en la CodePipeline consola en [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. En la página **Bienvenido**, **Introducción** o en la página **Canalizaciones**, elija **Crear canalización**.

1. En la página **Paso 1: elección de la opción de creación**, en **Opciones de creación**, seleccione la opción **Crear una canalización personalizada**. Elija **Siguiente**.

1. En **Paso 2: elegir la configuración de la canalización**, en **Nombre de la canalización**, escriba **MyCodeCommitPipeline**.

1. CodePipeline proporciona tuberías de tipo V1 y V2, que difieren en características y precio. El tipo V2 es el único tipo que puede elegir en la consola. Para obtener más información, consulte [Tipos de canalización](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel). Para obtener información sobre los precios de CodePipeline, consulte [Precios](https://aws.amazon.com/codepipeline/pricing/).

1. En **Service role (Rol de servicio)**, realice una de las operaciones siguientes:
   + Elija **Existing service role (Rol de servicio existente)**
   + Elija su función CodePipeline de servicio actual. El rol debe tener el permiso de IAM de `codecommit:GetRepository` para la política de rol de servicio. Consulte [Añadir permisos al rol CodePipeline de servicio](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-iam.html#how-to-update-role-new-services).

1. Para **Configuración avanzada** deje los valores predeterminados. Elija **Siguiente**.

1. En la página **Paso 3: agregar la etapa de origen**, haga lo siguiente:

   1. En **Source provider (Proveedor de código fuente)**, elija **CodeCommit**.

   1. En **Nombre de repositorio**, elija el nombre de su repositorio.

   1. En **Nombre de ramificación**, elija el nombre de su ramificación.

   1. Asegúrese de que la opción **Start the pipeline on source code change (Iniciar la canalización en el cambio del código fuente)** está seleccionada.

   1. En **Formato de artefacto de salida**, seleccione **Clonación completa** para habilitar la opción de clonación de Git para el repositorio de origen. Solo las acciones proporcionadas por CodeBuild pueden usar la opción de clonación de Git. 

   Elija **Siguiente**.

1. En **Paso 4: agregación de la etapa de compilación**, haga lo siguiente:

   1. En **Build provider (Proveedor de compilación)**, elija **AWS CodeBuild**. En el campo **Region (Región)** conserve el valor predeterminado de la región de la canalización.

   1. Elija **Crear proyecto**.

   1. En **Project name (Nombre de proyecto)**, escriba un nombre para este proyecto de compilación.

   1. En **Environment image (Imagen de entorno)**, elija **Managed image (Imagen administrada)**. En **Operating system (Sistema operativo)**, elija **Ubuntu**.

   1. En **Runtime**, elija **Standard (Estándar)**. **En **Imagen**, escogeaws/codebuild/standard: 5.0.**

   1. En **Service role (Rol de servicio)**, elija **New service role (Nuevo rol de servicio)**.
**nota**  
Anote el nombre de su función de servicio. CodeBuild Necesitará el nombre del rol para el paso final de este tutorial.

   1. En **Buildspec**, para **Build specifications** (Especificaciones de la compilación), elija **Insert build commands** (Insertar comandos de compilación). Elija **Cambiar a editor** y en **Comandos de compilación** pegue el código siguiente:

      ```
      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. Selecciona **Continuar a CodePipeline**. De este modo, volverá a la CodePipeline consola y se creará un CodeBuild proyecto que utilizará los comandos de compilación para la configuración. El proyecto de compilación utiliza un rol de servicio para administrar los permisos del Servicio de AWS . Es posible que este paso tarde un par de minutos.

   1. Elija **Siguiente**.

1. En **Paso 5: agregación de la etapa de prueba**, elija **Omitir la etapa de prueba** y, a continuación, acepte el mensaje de advertencia eligiendo **Omitir** una vez más. 

   Elija **Siguiente**.

1. En la página **Paso 6: Añadir fase de despliegue**, seleccione **Omitir fase de despliegue** y, a continuación, acepte el mensaje de advertencia seleccionando **Omitir** de nuevo. Elija **Siguiente**.

1. En el **paso 7: Revisar**, selecciona **Crear canalización**.

## Paso 3: actualice la política CodeBuild de roles de servicio para clonar el repositorio
<a name="tutorials-codecommit-gitclone-rolepolicy"></a>

La ejecución inicial de la canalización fallará porque tendrás que actualizar la función de CodeBuild servicio con permisos para extraerla de tu repositorio.

Añada el permiso de IAM de `codecommit:GitPull` a la política de roles de servicio. Para obtener instrucciones sobre cómo actualizar la política en la consola de IAM, consulte [Añada CodeBuild GitClone permisos para las acciones CodeCommit de origen](troubleshooting.md#codebuild-role-codecommitclone).

## Paso 4: Ver comandos del repositorio en el resultado de la compilación
<a name="tutorials-codecommit-gitclone-view"></a>

**Para ver el resultado de la compilación**

1. Cuando tu rol de servicio se haya actualizado correctamente, selecciona **Reintentar** en la CodeBuild fase fallida.

1. Después de que la canalización se ejecute correctamente, en la etapa de implementación, elija **Ver detalles**.

   En la página de detalles, elija la pestaña **Registros**. Vea el resultado de la CodeBuild compilación. Los comandos muestran el valor de la variable introducida.

   Los comandos muestran el contenido del archivo `README.md`, muestran los archivos en el directorio, clonan el repositorio, visualizan el registro y ejecutan `git describe --all`. 