

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 GitHub canalización
<a name="tutorials-github-gitclone"></a>

Puedes elegir la opción de clonación completa para tu acción GitHub fuente en CodePipeline. Usa esta opción para ejecutar CodeBuild comandos para los metadatos de Git en la acción de creación de tu canalización.

**nota**  
La opción de clonación completa que se describe aquí se refiere a especificar si se CodePipeline deben clonar los metadatos del repositorio, que solo pueden ser utilizados por CodeBuild comandos. Para usar un [token de acceso de GitHub usuario](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) para usarlo en CodeBuild proyectos, siga los pasos que se indican a continuación para instalar el AWS Connector para la GitHub aplicación y, a continuación, deje el campo de instalación de la aplicación en blanco. CodeConnections utilizará el token de acceso de usuario para la conexión.



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

En este tutorial, crearás una canalización que se conecte a tu GitHub repositorio, utilice la opción de clonación completa para los datos de origen y ejecutará una CodeBuild compilación que clone tu repositorio y ejecute los comandos de Git para el repositorio.

**nota**  
Esta función no está disponible en las regiones de Asia Pacífico (Hong Kong), África (Ciudad del Cabo), Oriente Medio (Baréin), Europa (Zúrich) AWS GovCloud o (EE. UU. Oeste). Para hacer referencia a otras acciones disponibles, consulte [Integraciones de productos y servicios con CodePipeline](integrations.md). Para ver consideraciones sobre esta acción en la región de Europa (Milán), consulte la nota que aparece en [CodeStarSourceConnection para Bitbucket Cloud GitHub, GitHub Enterprise Server, GitLab .com y acciones GitLab autogestionadas](action-reference-CodestarConnectionSource.md).

**Topics**
+ [

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

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

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

## Paso 3: actualice la política CodeBuild de roles de servicio para usar las conexiones
](#tutorials-github-gitclone-rolepolicy)
+ [

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

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

Antes de empezar, debe hacer lo siguiente:
+ Crea un GitHub repositorio con tu GitHub cuenta.
+ Ten tus GitHub credenciales preparadas. Cuando utilices el Consola de administración de AWS para configurar una conexión, se te pedirá que inicies sesión con tus GitHub credenciales. 

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

Tras crear el GitHub repositorio, sigue estos pasos para añadir un archivo README.

1. Inicia sesión en tu GitHub repositorio y elige tu repositorio.

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

   ```
   This is a GitHub 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-github-gitclone-pipeline"></a>

En esta sección, debe crear una canalización con las siguientes acciones:
+ Una etapa de origen con una conexión a tu GitHub repositorio y a tu acción.
+ Una etapa de creación con una acción de AWS CodeBuild creació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 **MyGitHubPipeline**.

1. En **Tipo de canalización**, elija **V1** para los fines de este tutorial. También puede elegir **V2**; sin embargo, tenga en cuenta que los tipos de canalización difieren en cuanto a características y precio. Para obtener más información, consulte [Tipos de canalización](pipeline-types.md).

1. En **Service role (Rol de servicio)**, elija **New service role (Nuevo rol de servicio)**.
**nota**  
Si opta por utilizar su función de CodePipeline servicio actual, asegúrese de haber añadido el permiso de `codestar-connections:UseConnection` IAM a su política de función de servicio. Para obtener instrucciones sobre la función de CodePipeline servicio, consulte [Añadir permisos a la función de CodePipeline 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. En **Artifact store** (Almacén de artefactos), elija **Default location** (Ubicación predeterminada) para utilizar el almacén de artefactos predeterminado, como el bucket de artefacto de Amazon S3 que se estableció como predeterminado, para la canalización en la región que seleccionó para esta.
**nota**  
Este no es el bucket de origen para su código fuente. Este es el almacén de artefactos de la canalización. Cada canalización debe tener su propio almacén de artefactos independiente, como un bucket de S3.

   Elija **Siguiente**.

1. En la página **Paso 3: agregar la etapa de origen**, agregue una etapa de origen:

   1. En **Proveedor de origen**, elija **GitHub (a través de GitHub la aplicación)**.

   1. En **Conexión**, seleccione una conexión existente o cree una nueva. Para crear o gestionar una conexión para la acción GitHub de origen, consulte[GitHub conexiones](connections-github.md). 

      Se instala una aplicación para todas las conexiones a un proveedor en particular. Si ya ha instalado el AWS conector para la GitHub aplicación, elíjalo y omita este paso.
**nota**  
Si desea crear un [token de acceso de usuario](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app), asegúrese de que ya ha instalado el AWS Connector para la GitHub aplicación y, a continuación, deje vacío el campo de instalación de la aplicación. CodeConnections utilizará el token de acceso de usuario para la conexión. Para obtener más información, consulte [Acceder a su proveedor de origen en CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/access-tokens.html).

   1. En **Repository name (Nombre de repositorio)**, elija el nombre de su repositorio de GitHub.

   1. En **Nombre de ramificación**, elija la ramificación de repositorio que desea utilizar.

   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. [Paso 3: actualice la política CodeBuild de roles de servicio para usar las conexiones](#tutorials-github-gitclone-rolepolicy)En este tutorial, utilizarás esta opción para actualizar los permisos de tu rol de servicio de CodeBuild proyectos.

   Elija **Siguiente**.

1. En **Paso 4: agregación de la etapa de compilación**, agregue una etapa de compilación:

   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)**. **Para **Imagen**, escoja: 5.0. aws/codebuild/standard**

   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 pegue lo siguiente en **Comandos de compilación**:
**nota**  
En la sección `env` de la especificación de compilación, asegúrese de que el ayudante de credenciales para los comandos de git esté habilitado, como se muestra en este ejemplo.

      ```
      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 archive --format=zip HEAD > application.zip
        #post_build:
          #commands:
            # - command
            # - command
      artifacts:
        files:
          - application.zip
          # - location
        #name: $(date +%Y-%m-%d)
        #discard-paths: yes
        #base-directory: location
      #cache:
        #paths:
          # - paths
      ```

   1. Selecciona **Continuar a CodePipeline**. Esto vuelve a la CodePipeline consola y crea un CodeBuild proyecto que utiliza los comandos de compilación para la configuración. El proyecto de compilación usa un rol de servicio para administrar Servicio de AWS los permisos. 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 usar las conexiones
<a name="tutorials-github-gitclone-rolepolicy"></a>

La ejecución inicial de la canalización fallará porque la función de CodeBuild servicio debe actualizarse con permisos para usar las conexiones. Añada el permiso de IAM de `codestar-connections:UseConnection` 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ñade CodeBuild GitClone permisos para las conexiones a Bitbucket, Enterprise Server o .com GitHub GitHub GitLab](troubleshooting.md#codebuild-role-connections).

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

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 archivan el repositorio como un archivo ZIP.