

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.

# Muestras de repositorios fuente de terceros para CodeBuild
<a name="sample-third-party-source"></a>

En esta sección se describen ejemplos de integraciones entre repositorios de fuentes de terceros y. CodeBuild


| Muestra | Description (Descripción) | 
| --- | --- | 
|  BitBucket Ejemplo de filtro pull request y webhook: consulte [Ejecuta el ejemplo «Filtro de webhooks y solicitudes de extracción de Bitbucket» para CodeBuild](sample-bitbucket-pull-request.md)  |  En este ejemplo se muestra cómo crear una solicitud de extracción mediante un repositorio de Bitbucket. También se muestra cómo utilizar un webhook de Bitbucket para activar CodeBuild con el fin de crear una compilación de un proyecto.  | 
|  GitHub Ejemplo de Enterprise Server: consulte [Ejecute el ejemplo de GitHub Enterprise Server para CodeBuild](sample-github-enterprise.md)  |  En este ejemplo, se muestra cómo configurar CodeBuild los proyectos cuando el repositorio de GitHub Enterprise Server tiene un certificado instalado. También muestra cómo habilitar los webhooks para que CodeBuild reconstruyan el código fuente cada vez que se introduzca un cambio de código en el repositorio de GitHub Enterprise Server.  | 
|  GitHub Ejemplo de filtro de webhook y pull request: consulta [Ejecuta el ejemplo de filtro de solicitudes de GitHub extracción y webhook para CodeBuild](sample-github-pull-request.md)  |  En este ejemplo, se muestra cómo crear una solicitud de extracción mediante un repositorio de GitHub Enterprise Server. También se muestra cómo habilitar los webhooks para que CodeBuild se reconstruya el código fuente cada vez que se introduce un cambio de código en el repositorio de GitHub Enterprise Server.  | 

# Ejecuta el ejemplo «Filtro de webhooks y solicitudes de extracción de Bitbucket» para CodeBuild
<a name="sample-bitbucket-pull-request"></a>

AWS CodeBuild admite webhooks cuando el repositorio de origen es Bitbucket. Esto significa que, en el caso de un proyecto de CodeBuild compilación cuyo código fuente esté almacenado en un repositorio de Bitbucket, los webhooks se pueden usar para reconstruir el código fuente cada vez que se introduzca un cambio de código en el repositorio. Para obtener más información, consulte [Eventos de webhooks de Bitbucket](bitbucket-webhook.md). 

En este ejemplo se muestra cómo crear una solicitud de extracción mediante un repositorio de Bitbucket. También te muestra cómo usar un webhook de Bitbucket para activar CodeBuild la creación de una compilación de un proyecto.

**nota**  
Al usar webhooks, es posible que un usuario active una compilación de forma inesperada. Para mitigar este riesgo, consulte [Prácticas recomendadas para utilizar webhooks](webhooks.md#webhook-best-practices).

**Topics**
+ [Requisitos previos](#sample-bitbucket-pull-request-prerequisites)
+ [Paso 1: creación de un proyecto de compilación con Bitbucket y habilitación de webhooks](#sample-bitbucket-pull-request-create)
+ [Paso 2: activación de una compilación con un webhook de Bitbucket](#sample-bitbucket-pull-request-trigger)

## Requisitos previos
<a name="sample-bitbucket-pull-request-prerequisites"></a>

 Para ejecutar este ejemplo, debes conectar tu AWS CodeBuild proyecto con tu cuenta de Bitbucket. 

**nota**  
 CodeBuild ha actualizado sus permisos con Bitbucket. Si anteriormente habías conectado tu proyecto a Bitbucket y ahora recibes un error de conexión con Bitbucket, debes volver a conectarte para conceder el CodeBuild permiso de gestión de tus webhooks. 

## Paso 1: creación de un proyecto de compilación con Bitbucket y habilitación de webhooks
<a name="sample-bitbucket-pull-request-create"></a>

 En los siguientes pasos, se describe cómo crear un AWS CodeBuild proyecto con Bitbucket como repositorio de origen y cómo habilitar los webhooks. 

1. [Abre la AWS CodeBuild consola en codebuild/home. https://console.aws.amazon.com/codesuite/](https://console.aws.amazon.com/codesuite/codebuild/home)

1.  Si aparece una página de CodeBuild información, elija **Crear** proyecto de compilación. De lo contrario, en el panel de navegación, expanda **Compilar**, elija **Proyectos de compilación** y, a continuación, elija **Crear proyecto de compilación**. 

1. Elija **Crear el proyecto de compilación**. 

1. En **Project configuration (Configuración del proyecto)**:  
**Nombre del proyecto**  
Introduzca un nombre para este proyecto de compilación. Los nombres de los proyectos de compilación deben ser únicos en cada AWS cuenta. También puede introducir una descripción opcional del proyecto de compilación para ayudar a otros usuarios a entender para qué se utiliza el proyecto.

1. En **Source (Código fuente)**:  
**Proveedor de fuentes**  
Seleccione **Bitbucket**. Siga las instrucciones para conectarse (o volver a conectarse) a Bitbucket y, a continuación, elija **Autorizar**.  
**Repositorio**  
Seleccione **Repositorio en mi cuenta de Bitbucket**.  
Si no se ha conectado previamente a su cuenta de Bitbucket, introduzca su nombre de usuario y contraseña de aplicación de Bitbucket y seleccione **Guardar las credenciales de Bitbucket**.  
**Repositorio de Bitbucket**  
Introduzca la URL de su repositorio de Bitbucket.

1. En **Eventos de webhook de origen principal**, seleccione lo siguiente. 
**nota**  
La sección **Eventos de webhook de origen principal** solo está visible si se ha seleccionado **Repositorio en mi cuenta de Bitbucket** en el paso anterior.

   1. Cuando cree el proyecto, seleccione **Rebuild every time a code change is pushed to this repository (Volver a compilar cada vez que se inserte un cambio de código en este repositorio)**. 

   1. En **Event type (Tipo de evento)**, seleccione uno o varios eventos. 

   1. Para filtrar en función de cuándo un evento va a desencadenar una compilación, en **Start a build under these conditions (Iniciar una compilación en estas condiciones)**, añada uno o varios filtros opcionales. 

   1. Para filtrar en función de cuándo no se va a desencadenar un evento, en **Don't start a build under these conditions (No iniciar una compilación en estas condiciones)**, añada uno o varios filtros opcionales. 

   1. Seleccione **Añadir grupo de filtros** para añadir otro grupo de filtros. 

   Para obtener más información sobre los filtros y tipos de eventos de webhook de Bitbucket, consulte [Eventos de webhooks de Bitbucket](bitbucket-webhook.md).

1. En **Environment (Entorno)**:  
**Imagen del entorno**  
Seleccione una de las siguientes opciones:    
Para usar una imagen de Docker gestionada por AWS CodeBuild:  
Elija **Imagen administrada** y después elija opciones en **Sistema operativo**, **Tiempo de ejecución**, **Imagen** y **Versión de imagen**. Realice una selección en **Environment type (Tipo de entorno)** si está disponible.  
Para utilizar otra imagen de Docker:   
Elija **Imagen personalizada**. En **Tipo de entorno**, elija **ARM**, **Linux**, **GPU de Linux** o **Windows**. Si elige **Otro registro**, en **URL de registro externo**, introduzca el nombre y etiqueta de la imagen de Docker en Docker Hub, usando el formato `docker repository/docker image name`. Si elige **Amazon ECR**, utilice el **repositorio de Amazon ECR** y la imagen de **Amazon ECR para elegir la imagen** de Docker en su cuenta. AWS   
Para usar una imagen de Docker privada:  
Elija **Imagen personalizada**. En **Tipo de entorno**, elija **ARM**, **Linux**, **GPU de Linux** o **Windows**. En **Image registry (Registro de imagen)**, elija **Other registry (Otro registro)** y, a continuación, introduzca el ARN de las credenciales para su imagen de Docker privada. Es necesario crear las credenciales con Secrets Manager. [Para obtener más información, consulte ¿Qué es? AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) en la *Guía AWS Secrets Manager del usuario*.  
**Rol de servicio**  
Seleccione una de las siguientes opciones:  
   + Si no tiene un rol de CodeBuild servicio, elija **Nuevo rol de servicio**. Escriba un nombre para el nuevo rol en el campo **Role Name**.
   + Si tiene un rol CodeBuild de servicio, elija el **rol de servicio existente**. En **ARN de rol**, seleccione el rol de servicio.
Cuando utilizas la consola para crear o actualizar un proyecto de compilación, puedes crear un rol de CodeBuild servicio al mismo tiempo. De forma predeterminada, el rol funciona solamente con ese proyecto de compilación. Si utiliza la consola para asociar este rol de servicio a otro proyecto de compilación, el rol se actualizará para que funcione con el otro proyecto de compilación. Un rol de servicio puede funcionar con hasta diez proyectos de compilación.

1. En **Archivo de especificación de compilación**, realice alguna de las operaciones siguientes:
   + Seleccione **Usar un archivo de especificaciones de compilación** para utilizar el archivo buyildspec.yml que figura en el directorio raíz del código fuente.
   + Elija **Insertar comandos de compilación** para usar la consola para insertar comandos de compilación.

   Para obtener más información, consulte la [Referencia de la especificación de compilación](build-spec-ref.md).

1. En **Artifacts (Artefactos)**:  
**Tipo**  
Seleccione una de las siguientes opciones:  
   + Si no desea crear ningún artefacto de salida de la compilación, elija **No artifacts (Sin artefactos)**.
   + Para almacenar la salida de la compilación en un bucket de S3, seleccione **Amazon S3** y, a continuación, haga lo siguiente:
     + Si desea utilizar su nombre de proyecto para el archivo ZIP o carpeta de salida de la compilación, deje en blanco **Nombre**. De lo contrario, escriba el nombre. De forma predeterminada, el nombre del artefacto es el nombre del proyecto. Si desea usar otro nombre, escríbalo en el cuadro de nombre de artefactos. Si desea producir un archivo ZIP, incluya la extensión zip.
     + En **Bucket name (Nombre del bucket)**, seleccione el nombre del bucket de salida.
     + Si eligió **Insert build commands (Insertar comandos de compilación)** anteriormente en este procedimiento, en **Output files (Archivos de salida)**, escriba las ubicaciones de los archivos de la compilación que desea incluir en el archivo ZIP o carpeta de salida de la compilación. Si hay varias ubicaciones, separe cada una de las ubicaciones con una coma (por ejemplo, `appspec.yml, target/my-app.jar`). Para obtener más información, consulte la descripción de `files` en [Sintaxis de buildspec](build-spec-ref.md#build-spec-ref-syntax).  
**Configuración adicional**  
Expanda **Additional configuration (Configuración adicional)** y establezca las opciones según sea necesario.

1. Elija **Crear el proyecto de compilación**. En la página **Review (Revisar)**, elija **Start build (Comenzar compilación)** para ejecutar la compilación.

## Paso 2: activación de una compilación con un webhook de Bitbucket
<a name="sample-bitbucket-pull-request-trigger"></a>

En el caso de un proyecto que usa webhooks de Bitbucket, AWS CodeBuild crea una compilación cuando el repositorio de Bitbucket detecta un cambio en el código fuente. 

1. [Abre la AWS CodeBuild consola en codebuild/home. https://console.aws.amazon.com/codesuite/](https://console.aws.amazon.com/codesuite/codebuild/home)

1. En el panel de navegación, elija **Build projects (Proyectos de compilación)** y, a continuación, elija un proyecto asociado a un repositorio de Bitbucket con webhooks. Para obtener información sobre cómo crear un proyecto con webhook de Bitbucket, consulte [Paso 1: creación de un proyecto de compilación con Bitbucket y habilitación de webhooks](#sample-bitbucket-pull-request-create). 

1. Realice algunos cambios en el código en el repositorio de Bitbucket del proyecto. 

1. Cree una solicitud de extracción en su repositorio de Bitbucket. Para obtener más información, consulte el artículo sobre [cómo crear una solicitud de extracción](https://www.atlassian.com/git/tutorials/making-a-pull-request). 

1. En la página de webhooks de Bitbucket, elija **View request (Ver solicitud)** para ver una lista de eventos recientes. 

1. Selecciona **Ver detalles** para ver los detalles de la respuesta devuelta por. CodeBuild Debe ser similar al siguiente: 

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

1. Vaya a la página de solicitudes de extracción de Bitbucket para ver el estado de la compilación. 

# Ejecute el ejemplo de GitHub Enterprise Server para CodeBuild
<a name="sample-github-enterprise"></a>

AWS CodeBuild admite GitHub Enterprise Server como repositorio de origen. En este ejemplo se muestra cómo configurar CodeBuild los proyectos cuando el repositorio de GitHub Enterprise Server tiene un certificado instalado. También se muestra cómo habilitar los webhooks para que CodeBuild se reconstruya el código fuente cada vez que se introduzca un cambio de código en el repositorio de GitHub Enterprise Server.

**Topics**
+ [Requisitos previos](#sample-github-enterprise-prerequisites)
+ [Paso 1: Cree un proyecto de compilación con GitHub Enterprise Server y habilite los webhooks](#sample-github-enterprise-running)

## Requisitos previos
<a name="sample-github-enterprise-prerequisites"></a>

1. Genera un token de acceso personal para tu proyecto. CodeBuild Le recomendamos que cree un usuario GitHub empresarial y genere un token de acceso personal para este usuario. Cópielo en el portapapeles para que pueda usarlo al crear su CodeBuild proyecto. Para obtener más información, consulte [Crear un token de acceso personal para la línea de comandos](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) en el sitio web de GitHub ayuda.

   Cuando cree el token de acceso personal, incluya el ámbito del **repositorio** en la definición.  
![\[El ámbito del repositorio en la definición.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/scopes.png)

1. Descargue su certificado desde GitHub Enterprise Server. CodeBuild utiliza el certificado para establecer una conexión SSL de confianza con el repositorio.

   **Clientes Linux/macOS:**

   En una ventana de terminal de , ejecute el siguiente comando:

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

   Sustituya los marcadores de posición del comando por los siguientes valores:

   *HOST*. La dirección IP de su repositorio de GitHub Enterprise Server.

   *PORTNUMBER*. El número de puerto que utiliza para conectarse (por ejemplo, 443).

   *folder*. La carpeta en la que descargó el certificado.

   *filename*. El nombre del archivo de su certificado.
**importante**  
Guarde el certificado como un archivo .pem.

   **Clientes de Windows:**

   Utilice su navegador para descargar el certificado de GitHub Enterprise Server. Para ver los detalles del certificado del sitio, seleccione el icono del candado. Para obtener información sobre cómo exportar el certificado, consulte la documentación del navegador.
**importante**  
Guarde el certificado como un archivo .pem.

1. Cargue el archivo de certificado en un bucket de S3. Para obtener información acerca de cómo crear un bucket de S3, consulte [¿Cómo puedo crear un bucket de S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) Para obtener información acerca de cómo cargar objetos en un bucket de S3, consulte [¿Cómo puedo cargar archivos y carpetas en un bucket?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)
**nota**  
Este depósito debe estar en la misma AWS región que sus compilaciones. Por ejemplo, si indicas CodeBuild que se ejecute una compilación en la región EE.UU. Este (Ohio), el bucket debe estar en la región EE.UU. Este (Ohio).

## Paso 1: Cree un proyecto de compilación con GitHub Enterprise Server y habilite los webhooks
<a name="sample-github-enterprise-running"></a>

1. Abre la AWS CodeBuild consola en [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Si aparece una página de CodeBuild información, elija **Crear** proyecto de compilación. De lo contrario, en el panel de navegación, expanda **Compilar**, elija **Proyectos de compilación** y, a continuación, elija **Crear proyecto de compilación**. 

1. En **Project name (Nombre de proyecto)**, escriba un nombre para este proyecto de compilación. Los nombres de los proyectos de compilación deben ser únicos en cada AWS cuenta. También puede introducir una descripción opcional del proyecto de compilación para ayudar a otros usuarios a entender para qué se utiliza el proyecto.

1. En **Fuente**, en **Proveedor de fuentes**, selecciona **GitHub Enterprise Server**.
   + Seleccione **Administrar credenciales de cuenta** y, a continuación, **Token de acceso personal**. En **Servicio**, seleccione **Secrets Manager (recomendado)** y configure su secreto. A continuación**, en Token de acceso personal GitHub empresarial**, introduce tu token de acceso personal y selecciona **Guardar**.
   + En **Repository URL (URL del repositorio)**, escriba la ruta al repositorio, incluido el nombre del repositorio.
   + Expanda **Configuración adicional**.
   + Seleccione **Rebuild every time a code change is pushed to this repository (Volver a compilar cada vez que un cambio de código se inserte en el repositorio)** para recompilar cada vez que se inserte un cambio de código en este repositorio.
   + Selecciona **Activar SSL inseguro** para ignorar las advertencias de SSL mientras te conectas al repositorio de proyectos de GitHub Enterprise Server.
**nota**  
Le recomendamos que solamente utilice **Enable insecure SSL (Habilitar SSL no seguro)** para realizar pruebas. No debe utilizarse en un entorno de producción.  
![\[La configuración del repositorio de proyectos de GitHub Enterprise Server.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/github-enterprise.png)

1. En **Environment (Entorno)**:

   En **Environment image (Imagen del entorno)**, realice alguna de las siguientes operaciones:
   + Para usar una imagen de Docker gestionada por AWS CodeBuild, elija **Imagen gestionada** y, a continuación, seleccione **Sistema operativo**, **Tiempo de ejecución**, **Imagen** y **Versión de la imagen**. Realice una selección en **Environment type (Tipo de entorno)** si está disponible.
   + Para usar otra imagen de Docker, elija **Custom image (Imagen personalizada)**. En **Tipo de entorno**, elija **ARM**, **Linux**, **GPU de Linux** o **Windows**. Si elige **Otro registro**, en **URL de registro externo**, introduzca el nombre y etiqueta de la imagen de Docker en Docker Hub, usando el formato `docker repository/docker image name`. Si elige **Amazon ECR**, utilice el **repositorio de Amazon ECR** y la imagen de **Amazon ECR para elegir la imagen** de Docker en su cuenta. AWS 
   + Para usar una imagen de Docker privada, elija **Imagen personalizada**. En **Tipo de entorno**, elija **ARM**, **Linux**, **GPU de Linux** o **Windows**. En **Image registry (Registro de imagen)**, elija **Other registry (Otro registro)** y, a continuación, introduzca el ARN de las credenciales para su imagen de Docker privada. Es necesario crear las credenciales con Secrets Manager. Para obtener más información, consulte [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) en la *Guía del usuario de AWS Secrets Manager *.

1. En **Service role (Rol de servicio)**, realice una de las operaciones siguientes:
   + **Si no tiene un rol de CodeBuild servicio, elija Nuevo rol de servicio.** Escriba un nombre para el nuevo rol en el campo **Role Name**.
   + Si tiene un rol CodeBuild de servicio, elija el **rol de servicio existente**. En **ARN de rol**, seleccione el rol de servicio.
**nota**  
Cuando utilizas la consola para crear o actualizar un proyecto de compilación, puedes crear un rol de CodeBuild servicio al mismo tiempo. De forma predeterminada, el rol funciona solamente con ese proyecto de compilación. Si utiliza la consola para asociar este rol de servicio a otro proyecto de compilación, el rol se actualizará para que funcione con el otro proyecto de compilación. Un rol de servicio puede funcionar con hasta diez proyectos de compilación.

1. Expanda **Configuración adicional**.

   Si quieres CodeBuild trabajar con tu VPC:
   + Para la **VPC**, elija el ID de VPC que utilice. CodeBuild 
   + Para las subredes de **VPC, elija las subredes** que incluyen los recursos que utiliza. CodeBuild 
   + Para los **grupos de seguridad de VPC**, elija los grupos de seguridad que se CodeBuild utilizan para permitir el acceso a los recursos de. VPCs

   Para obtener más información, consulte [Úselo AWS CodeBuild con Amazon Virtual Private Cloud](vpc-support.md).

1. En **Archivo de especificación de compilación**, realice alguna de las operaciones siguientes:
   + Seleccione **Usar un archivo de especificaciones de compilación** para utilizar el archivo buyildspec.yml que figura en el directorio raíz del código fuente.
   + Elija **Insertar comandos de compilación** para usar la consola para insertar comandos de compilación.

   Para obtener más información, consulte la [Referencia de la especificación de compilación](build-spec-ref.md).

1. En **Artifacts (Artefactos)**, en **Type (Tipo)**, realice una de las siguientes operaciones:
   + Si no desea crear ningún artefacto de salida de la compilación, elija **No artifacts (Sin artefactos)**.
   + Para almacenar la salida de la compilación en un bucket de S3, seleccione **Amazon S3** y, a continuación, haga lo siguiente:
     + Si desea utilizar su nombre de proyecto para el archivo ZIP o carpeta de salida de la compilación, deje en blanco **Nombre**. De lo contrario, escriba el nombre. De forma predeterminada, el nombre del artefacto es el nombre del proyecto. Si desea usar otro nombre, escríbalo en el cuadro de nombre de artefactos. Si desea producir un archivo ZIP, incluya la extensión zip.
     + En **Bucket name (Nombre del bucket)**, seleccione el nombre del bucket de salida.
     + Si eligió **Insert build commands (Insertar comandos de compilación)** anteriormente en este procedimiento, en **Output files (Archivos de salida)**, escriba las ubicaciones de los archivos de la compilación que desea incluir en el archivo ZIP o carpeta de salida de la compilación. Si hay varias ubicaciones, separe cada una de las ubicaciones con una coma (por ejemplo, `appspec.yml, target/my-app.jar`). Para obtener más información, consulte la descripción de `files` en [Sintaxis de buildspec](build-spec-ref.md#build-spec-ref-syntax).

1. En **Tipo de caché**, seleccione una de las opciones siguientes:
   + Si no desea usar una memoria caché, seleccione **Sin caché**.
   + Si prefiere utilizar una caché de Amazon S3, seleccione **Amazon S3** y haga lo siguiente:
     + En **Bucket**, señeccopme el nombre del bucket de S3 donde se almacena la caché.
     + (Opcional) Para **Prefijo de ruta de caché**, escriba un prefijo de ruta de Amazon S3. El valor **Prefijo de ruta de caché** es similar a un nombre de directorio. Le permite almacenar la caché en el mismo directorio en un bucket. 
**importante**  
No añada una barra (/) al final del prefijo de ruta.
   +  Si desea utilizar una caché local, seleccione **Local** y elija uno o varios modos de caché local. 
**nota**  
El modo de caché de capas de Docker solo está disponible para Linux. Si lo selecciona, el proyecto deberá ejecutarse en modo con privilegios. 

   El uso de memoria caché ahorra mucho tiempo de compilación, ya que algunas partes reutilizables del entorno de compilación se almacenan en ella y se usan en las distintas compilaciones. Para obtener información acerca de cómo especificar una caché en el archivo de especificación de compilación, consulte [Sintaxis de buildspec](build-spec-ref.md#build-spec-ref-syntax). Para obtener más información acerca del almacenamiento en caché, consulte [Almacenamiento de las compilaciones en caché para mejorar el rendimiento](build-caching.md). 

1. Elija **Crear el proyecto de compilación**. En la página del proyecto de compilación, elija **Start build (Iniciar compilación)**.

# Ejecuta el ejemplo de filtro de solicitudes de GitHub extracción y webhook para CodeBuild
<a name="sample-github-pull-request"></a>

AWS CodeBuild admite webhooks cuando el repositorio fuente lo es GitHub. Esto significa que, en el caso de un proyecto de CodeBuild compilación que tiene su código fuente almacenado en un GitHub repositorio, los webhooks se pueden usar para reconstruir el código fuente cada vez que se introduce un cambio de código en el repositorio. Para ver CodeBuild ejemplos, consulta [AWS CodeBuild Ejemplos](https://github.com/aws-samples/aws-codebuild-samples).

**nota**  
Al usar webhooks, es posible que un usuario active una compilación de forma inesperada. Para mitigar este riesgo, consulte [Prácticas recomendadas para utilizar webhooks](webhooks.md#webhook-best-practices).

**Topics**
+ [Paso 1: Crea un proyecto de compilación con webhooks GitHub y actívalos](#sample-github-pull-request-running)
+ [Paso 2: comprobación de que los webhooks estén habilitados](#verification-checks)

## Paso 1: Crea un proyecto de compilación con webhooks GitHub y actívalos
<a name="sample-github-pull-request-running"></a>

1. Abre la AWS CodeBuild consola en [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Si aparece una página de CodeBuild información, elija **Crear** proyecto de compilación. De lo contrario, en el panel de navegación, expanda **Compilar**, elija **Proyectos de compilación** y, a continuación, elija **Crear proyecto de compilación**. 

1. Elija **Crear el proyecto de compilación**. 

1. En **Project configuration (Configuración del proyecto)**:  
**Nombre del proyecto**  
Introduzca un nombre para este proyecto de compilación. Los nombres de los proyectos de compilación deben ser únicos en cada AWS cuenta. También puede introducir una descripción opcional del proyecto de compilación para ayudar a otros usuarios a entender para qué se utiliza el proyecto.

1. En **Source (Código fuente)**:  
**Proveedor de fuentes**  
Elija **GitHub**. Sigue las instrucciones para conectarte (o volver a conectarte) GitHub y, a continuación, selecciona **Autorizar**.  
**Repositorio**  
Selecciona **Repositorio en mi GitHub cuenta.**  
**GitHub repositorio**  
Introduce la URL de tu GitHub repositorio.

1. En **Eventos de webhook de origen principal**, seleccione lo siguiente.
**nota**  
La sección de **eventos de webhook de la fuente principal** solo está visible si seleccionaste **Repositorio en mi GitHub cuenta** en el paso anterior.

   1. Cuando cree el proyecto, seleccione **Rebuild every time a code change is pushed to this repository (Volver a compilar cada vez que se inserte un cambio de código en este repositorio)**. 

   1. En **Event type (Tipo de evento)**, seleccione uno o varios eventos. 

   1. Para filtrar en función de cuándo un evento va a desencadenar una compilación, en **Start a build under these conditions (Iniciar una compilación en estas condiciones)**, añada uno o varios filtros opcionales. 

   1. Para filtrar en función de cuándo no se va a desencadenar un evento, en **Don't start a build under these conditions (No iniciar una compilación en estas condiciones)**, añada uno o varios filtros opcionales. 

   1. Seleccione **Añadir grupo de filtros** para añadir otro grupo de filtros. 

   Para obtener más información sobre los filtros y tipos de eventos de GitHub webhook, consulte. [GitHub eventos de webhook](github-webhook.md)

1. En **Environment (Entorno)**:  
**Imagen del entorno**  
Seleccione una de las siguientes opciones:    
Para usar una imagen de Docker gestionada por: AWS CodeBuild  
Elija **Imagen administrada** y después elija opciones en **Sistema operativo**, **Tiempo de ejecución**, **Imagen** y **Versión de imagen**. Realice una selección en **Environment type (Tipo de entorno)** si está disponible.  
Para utilizar otra imagen de Docker:   
Elija **Imagen personalizada**. En **Tipo de entorno**, elija **ARM**, **Linux**, **GPU de Linux** o **Windows**. Si elige **Otro registro**, en **URL de registro externo**, introduzca el nombre y etiqueta de la imagen de Docker en Docker Hub, usando el formato `docker repository/docker image name`. Si ha seleccionado **Amazon ECR**, use **Repositorio de Amazon ECR** e **Imagen de Amazon ECR** para elegir la imagen de Docker en su cuenta de AWS .  
Para usar una imagen de Docker privada:  
Elija **Imagen personalizada**. En **Tipo de entorno**, elija **ARM**, **Linux**, **GPU de Linux** o **Windows**. En **Image registry (Registro de imagen)**, elija **Other registry (Otro registro)** y, a continuación, introduzca el ARN de las credenciales para su imagen de Docker privada. Es necesario crear las credenciales con Secrets Manager. Para obtener más información, consulte [¿Qué es? AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) en la *Guía AWS Secrets Manager del usuario*.  
**Rol de servicio**  
Seleccione una de las siguientes opciones:  
   + Si no tiene un rol de CodeBuild servicio, elija **Nuevo rol de servicio**. Escriba un nombre para el nuevo rol en el campo **Role Name**.
   + Si tiene un rol CodeBuild de servicio, elija el **rol de servicio existente**. En **ARN de rol**, seleccione el rol de servicio.
Cuando utilizas la consola para crear o actualizar un proyecto de compilación, puedes crear un rol de CodeBuild servicio al mismo tiempo. De forma predeterminada, el rol funciona solamente con ese proyecto de compilación. Si utiliza la consola para asociar este rol de servicio a otro proyecto de compilación, el rol se actualizará para que funcione con el otro proyecto de compilación. Un rol de servicio puede funcionar con hasta diez proyectos de compilación.

1. En **Archivo de especificación de compilación**, realice alguna de las operaciones siguientes:
   + Seleccione **Usar un archivo de especificaciones de compilación** para utilizar el archivo buyildspec.yml que figura en el directorio raíz del código fuente.
   + Elija **Insertar comandos de compilación** para usar la consola para insertar comandos de compilación.

   Para obtener más información, consulte la [Referencia de la especificación de compilación](build-spec-ref.md).

1. En **Artifacts (Artefactos)**:  
**Tipo**  
Seleccione una de las siguientes opciones:  
   + Si no desea crear ningún artefacto de salida de la compilación, elija **No artifacts (Sin artefactos)**.
   + Para almacenar la salida de la compilación en un bucket de S3, seleccione **Amazon S3** y, a continuación, haga lo siguiente:
     + Si desea utilizar su nombre de proyecto para el archivo ZIP o carpeta de salida de la compilación, deje en blanco **Nombre**. De lo contrario, escriba el nombre. De forma predeterminada, el nombre del artefacto es el nombre del proyecto. Si desea usar otro nombre, escríbalo en el cuadro de nombre de artefactos. Si desea producir un archivo ZIP, incluya la extensión zip.
     + En **Bucket name (Nombre del bucket)**, seleccione el nombre del bucket de salida.
     + Si eligió **Insert build commands (Insertar comandos de compilación)** anteriormente en este procedimiento, en **Output files (Archivos de salida)**, escriba las ubicaciones de los archivos de la compilación que desea incluir en el archivo ZIP o carpeta de salida de la compilación. Si hay varias ubicaciones, separe cada una de las ubicaciones con una coma (por ejemplo, `appspec.yml, target/my-app.jar`). Para obtener más información, consulte la descripción de `files` en [Sintaxis de buildspec](build-spec-ref.md#build-spec-ref-syntax).  
**Configuración adicional**  
Expanda **Additional configuration (Configuración adicional)** y establezca las opciones según sea necesario.

1. Elija **Crear el proyecto de compilación**. En la página **Review (Revisar)**, elija **Start build (Comenzar compilación)** para ejecutar la compilación.

## Paso 2: comprobación de que los webhooks estén habilitados
<a name="verification-checks"></a>

1. Abre la AWS CodeBuild consola en [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. En el panel de navegación, elija **Proyectos de compilación**.

1. Realice una de las siguientes acciones:
   + Elija el enlace del proyecto de compilación con webhooks que desea verificar y, a continuación, seleccione **Build details (Detalles de compilación)**.
   + Seleccione el botón de opción situado junto al proyecto de compilación con webhooks que desea verificar, elija **Ver detalles** y, a continuación, elija la pestaña **Detalles de compilación**.

1. En los **eventos de webhook de la fuente principal**, seleccione el enlace a la URL del **Webhook**. 

1. **En tu GitHub repositorio, en la página de **configuración**, en **Webhooks**, comprueba que estén seleccionadas **las solicitudes de extracción y inserción**.**

1. En la configuración GitHub de tu perfil, en **Configuración personal**, **Aplicaciones** y ** OAuthAplicaciones autorizadas**, verás que tu aplicación está autorizada a acceder a la AWS región que seleccionaste.

# Tutorial: Firma de código de Apple con Fastlane al CodeBuild usar S3 para el almacenamiento de certificados
<a name="sample-fastlane"></a>

[fastlane](https://docs.fastlane.tools/) es una conocida herramienta de automatización de código abierto para automatizar implementaciones y versiones beta de aplicaciones iOS y Android. Se encarga de todas las tareas tediosas, como generar capturas de pantalla, administrar la firma de código y publicar la aplicación.

## Requisitos previos
<a name="sample-fastlane-prerequisites"></a>

Para completar este tutorial, debe configurar lo siguiente:
+ ¿Un Cuenta de AWS
+ Una [cuenta de desarrollador de Apple](https://developer.apple.com/)
+ Un bucket de S3 para almacenar certificados
+ fastlane instalado en el proyecto: [Guía](https://docs.fastlane.tools/getting-started/ios/setup/) para instalar fastlane

## Paso 1: configuración de Fastlane Match con S3 en el equipo local
<a name="sample-fastlane-S3"></a>

[Fastlane Match](https://docs.fastlane.tools/actions/match/) es una de las [herramientas de Fastlane](https://fastlane.tools/) y permite configurar sin problemas la firma de código tanto en tu entorno de desarrollo local como en otros entornos. CodeBuild Fastlane Match almacena todos sus certificados de firma de código y perfiles de aprovisionamiento en un almacenamiento en repository/S3 Bucket/Google la nube de Git, y descarga e instala los certificados y perfiles necesarios cuando es necesario.

En este ejemplo de configuración, configurará y usará un bucket de Amazon S3 para almacenamiento. 

****

1. Inicialice match en el proyecto:

   ```
   fastlane match init
   ```

1. Cuando se le solicite, elija S3 como modo de almacenamiento.

1. Actualice “*Matchfile*” para usar 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
   ```

## Paso 2: configuración del Fastfile
<a name="sample-fastlane-S3-fastfile"></a>

Cree o actualice el “Fastfile” con el siguiente flujo.

 CodeBuildActivado, tendrás que ejecutar Fastlane Match cada vez que crees y firmes tu aplicación. La forma más sencilla de hacerlo es agregar la acción `match` al flujo que compila la aplicación.

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

**nota**  
Asegúrese de agregar `setup_ci` a la sección `before_all ` de `Fastfile` para que la acción de búsqueda de coincidencias funcione correctamente. Esto garantiza el uso de un llavero de Fastlane temporal con los permisos adecuados. Si no lo usa, es posible que se produzcan errores de compilación o resultados incoherentes. 



## Paso 3: ejecución del comando `fastlane match` para generar los certificados y perfiles correspondientes
<a name="sample-fastlane-S3-certificates"></a>

El comando fastlane match para el tipo indicado (por ejemplo, desarrollo, tienda de aplicaciones, ad hoc, empresa) generará el certificado y el perfil si no están disponibles en el almacén remoto. Fastlane almacenará los certificados y los perfiles en S3.

```
bundle exec fastlane match appstore
```

La ejecución del comando será interactiva y fastlane solicitará establecer una frase de contraseña para descifrar los certificados.

## Paso 4: creación del archivo de aplicación para el proyecto
<a name="sample-fastlane-S3-appfile"></a>

Cree o agregue el archivo de aplicación que corresponda a su proyecto.

****

1. Cree o agregue [Gymfile](http://docs.fastlane.tools/actions/gym/#gymfile), [Appfile](http://docs.fastlane.tools/advanced/Appfile/), [Snapfile](http://docs.fastlane.tools/actions/snapshot/#snapfile), [Deliverfile](http://docs.fastlane.tools/actions/deliver/#editing-the-deliverfile) en función de los requisitos de creación del proyecto.

1. Confirmación de los cambios al repositorio remoto

## Paso 5: creación de variables de entorno en Secrets Manager
<a name="sample-fastlane-S3-secrets"></a>

Cree dos secretos para almacenar la cookie de sesión de fastlane y la frase de contraseña coincidente. Para obtener información sobre cómo crear un secreto en Secrets Manager, consulte [Creación de un secreto de AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html).

****

1. Acceda a la cookie de sesión de fastlane de la siguiente forma.

   1. Clave del secreto: `FASTLANE_SESSION`

   1. Valor secreto: cookie de sesión generada al ejecutar el siguiente comando en el equipo local.
**nota**  
Este valor está disponible después de la autenticación en un archivo local: `~/.fastlane/spaceship/my_appleid_username/cookie`.

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

1. Contraseña de Fastlane Match: para que Fastlane Match pueda descifrar los certificados y perfiles almacenados en el depósito de S3, es necesario añadir la contraseña de cifrado que configuró en el paso de configuración de Match a las variables de entorno del proyecto. CodeBuild

   1. Clave del secreto: `MATCH_PASSWORD`

   1. Valor del secreto: *<match passphrase to decrypt certificates>* La frase de contraseña se establece al generar los certificados en el paso 3.

**nota**  
Al crear los secretos anteriores en Secrets Manager, recuerde dar un nombre de secreto con el siguiente prefijo: `/CodeBuild/`

## Paso 6: creación de una flota de computación
<a name="sample-fastlane-S3-fleet"></a>

Cree la flota de computación para el proyecto.

****

1. En la consola, vaya a y cree una nueva flota de CodeBuild procesamiento.

1. Elija “macOS” como sistema operativo y seleccione un tipo de computación y una imagen adecuados.

## Paso 7: Crea un proyecto en CodeBuild
<a name="sample-fastlane-S3-project"></a>

Crea tu proyecto en CodeBuild.



****

1. Abre la AWS CodeBuild consola en [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Cree un proyecto de compilación. Para obtener más información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console) y [Ejecutar una compilación (consola)](run-build-console.md).

1. Configura tu proveedor de código fuente (por ejemplo,). GitHub CodeCommit Este es el repositorio de origen de proyectos de iOS y no el repositorio de certificados.

1.  En **Environment (Entorno)**: 
   + Elija **Capacidad reservada**.
   + En **Flota**, seleccione la flota creada anteriormente.
   + Proporcione el nombre del rol de servicio que CodeBuild se va a crear para usted.
   + Proporcione las siguientes variables de entorno.
     + Nombre:`MATCH_PASSWORD`, Valor:*<secrets arn>*, Tipo: Secrets Manager (el ARN secreto se creó en el paso 5 para MATCH\$1PASSWORD)
     + Nombre:`FASTLANE_SESSION`, Valor:*<secrets arn>*, Tipo: Secrets Manager (el ARN de secretos creado en el paso 5 para FASTLANE\$1SESSION)

1. En **Buildspec**, agregue lo siguiente:

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

## Paso 8: configuración del rol de IAM
<a name="sample-fastlane-S3-role"></a>

Una vez creado el proyecto, asegúrese de que el rol de servicio del CodeBuild proyecto tenga permisos para acceder al depósito de S3 que contiene los certificados. Agregue la siguiente política al rol:

------
#### [ 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/*"
        }
    ]
}
```

------

## Paso 9: ejecución de la compilación
<a name="sample-fastlane-S3-run"></a>

Ejecute la compilación. Puedes revisar el estado de la compilación e iniciar sesión CodeBuild.

Una vez que se haya completado el trabajo, podrá ver el registro de este.

## Resolución de problemas
<a name="sample-fastlane-S3-troubleshooting"></a>
+ Si tiene problemas al obtener certificados, asegúrese de que los permisos de IAM estén configurados correctamente para el acceso a S3.
+ Si tiene problemas al descifrar certificados, asegúrese de establecer la frase contraseña correcta en la variable de entorno MATCH\$1PASSWORD.
+ En caso de problemas con la firma de código, compruebe que la cuenta de desarrollador de Apple tiene los certificados y los perfiles necesarios y que el identificador de agrupación del proyecto de Xcode coincide con el del perfil de aprovisionamiento.

## Consideraciones de seguridad
<a name="sample-fastlane-considerations"></a>

Tenga en cuenta los siguientes aspectos de seguridad en este tutorial.
+ Asegúrese de que el bucket de S3 tenga la configuración de seguridad adecuada, incluido cifrado en reposo. En concreto, asegúrate de que el depósito no tenga acceso público y restringe el acceso únicamente CodeBuild al sistema al que debe acceder.
+ Considere usarlo AWS Secrets Manager para almacenar información confidencial, como MATCH\$1PASSWORD y FASTLANE\$1SESSION.

En este ejemplo, se proporciona una configuración para la firma de código de iOS con Fastlane CodeBuild mediante Amazon S3 para el almacenamiento de certificados. Es posible que tengas que ajustar algunos pasos en función de los requisitos y el CodeBuild entorno específicos de tu proyecto. Este enfoque aprovecha los AWS servicios para mejorar la seguridad y la integración dentro del AWS ecosistema.

# Tutorial: La firma de código de Apple con Fastlane se CodeBuild utiliza GitHub para el almacenamiento de certificados
<a name="sample-fastlane-github"></a>

[fastlane](https://docs.fastlane.tools/) es una conocida herramienta de automatización de código abierto para automatizar implementaciones y versiones beta de aplicaciones iOS y Android. Se encarga de todas las tareas tediosas, como generar capturas de pantalla, administrar la firma de código y publicar la aplicación.

En este ejemplo, se muestra cómo configurar la firma de código de Apple mediante Fastlane en un CodeBuild proyecto que se ejecuta en una flota de Mac, GitHub como almacenamiento para certificados y perfiles de aprovisionamiento.

## Requisitos previos
<a name="sample-fastlane-github-prerequisites"></a>

Para completar este tutorial, debe configurar lo siguiente:
+ ¿Un Cuenta de AWS
+ Una [cuenta de desarrollador de Apple](https://developer.apple.com/)
+ Un GitHub repositorio privado para almacenar certificados
+ fastlane instalado en el proyecto: [Guía](https://docs.fastlane.tools/getting-started/ios/setup/) para instalar fastlane

## Paso 1: Configura Fastlane Match con GitHub en tu máquina local
<a name="sample-fastlane-github-certificates"></a>

[Fastlane Match](https://docs.fastlane.tools/actions/match/) es una de las [herramientas de Fastlane](https://fastlane.tools/) y permite configurar sin problemas la firma de código tanto en tu entorno de desarrollo local como en otros entornos. CodeBuild Fastlane Match almacena todos sus certificados de firma de código y perfiles de aprovisionamiento en un almacenamiento en repository/S3 Bucket/Google la nube de Git, y descarga e instala los certificados y perfiles necesarios cuando es necesario.

En este ejemplo de configuración, configuraremos y usaremos un repositorio de Git para almacenamiento. 

****

1. Inicialice match en el proyecto:

   ```
   fastlane match init
   ```

1. Cuando se te pida, elige el modo de GitHub almacenamiento.

1. Actualice su *`Matchfile* `para usar 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
   ```

**nota**  
Asegúrate de introducir la URL HTTPS del repositorio de Git para que fastlane se autentique y clone correctamente. De lo contrario, puede aparecer un error de autenticación al intentar utilizar coincidencia.

## Paso 2: configuración del Fastfile
<a name="sample-fastlane-github-fastfile"></a>

Cree o actualice el “Fastfile” con el siguiente flujo.

 CodeBuildActivado, tendrás que ejecutar Fastlane Match cada vez que crees y firmes tu aplicación. La forma más sencilla de hacerlo es agregar la acción `match` al flujo que compila la aplicación.

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

**nota**  
Asegúrese de agregar `setup_ci` a la sección `before_all ` de `Fastfile` para que la acción de búsqueda de coincidencias funcione correctamente. Esto garantiza el uso de un llavero de Fastlane temporal con los permisos adecuados. Si no lo usa, es posible que se produzcan errores de compilación o resultados incoherentes. 

## Paso 3: ejecución del comando `fastlane match` para generar los certificados y perfiles correspondientes
<a name="sample-fastlane-github-certificates"></a>

El comando fastlane match para el tipo indicado (por ejemplo, desarrollo, tienda de aplicaciones, adhoc, empresa) generará el certificado y el perfil si no están disponibles en el almacén remoto. Fastlane almacenará los certificados y perfiles. GitHub 

```
bundle exec fastlane match appstore
```

La ejecución del comando será interactiva y fastlane solicitará establecer una frase de contraseña para descifrar los certificados.

## Paso 4: creación del archivo de aplicación para el proyecto
<a name="sample-fastlane-github-appfile"></a>

Cree o agregue el archivo de aplicación que corresponda a su proyecto.

****

1. Cree o agregue [Gymfile](http://docs.fastlane.tools/actions/gym/#gymfile), [Appfile](http://docs.fastlane.tools/advanced/Appfile/), [Snapfile](http://docs.fastlane.tools/actions/snapshot/#snapfile), [Deliverfile](http://docs.fastlane.tools/actions/deliver/#editing-the-deliverfile) en función de los requisitos de creación del proyecto.

1. Confirmación de los cambios al repositorio remoto.

## Paso 5: creación de variables de entorno en Secrets Manager
<a name="sample-fastlane-github-secrets"></a>

Cree tres secretos para almacenar la cookie de sesión de fastlane y la frase de contraseña coincidente. Para obtener información sobre cómo crear un secreto en Secrets Manager, consulte [Creación de un secreto de AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html).

****

1. Acceda a la cookie de sesión de fastlane de la siguiente forma.

   1. Clave del secreto: `FASTLANE_SESSION`

   1. Valor secreto: cookie de sesión generada al ejecutar el siguiente comando en el equipo local.
**nota**  
Este valor está disponible después de la autenticación en un archivo local: `~/.fastlane/spaceship/my_appleid_username/cookie`.

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

1. Frase de contraseña de Fastlane Match: para permitir que Fastlane Match descifre los certificados y perfiles almacenados en el repositorio de Git, es necesario añadir la contraseña de cifrado que configuró en el paso de configuración de Match a las variables de entorno del proyecto. CodeBuild 

   1. Clave del secreto: `MATCH_PASSWORD`

   1. Valor del secreto: `<match passphrase to decrypt certificates>` La frase de contraseña se establece al generar los certificados en el paso 3.

1. Fastlane `MATCH_GIT_BASIC_AUTHORIZATION`: establezca una autorización básica para *match*:

   1. Clave del secreto: 

      `MATCH_GIT_BASIC_AUTHORIZATION`

   1. Valor secreto: el valor debe ser una cadena codificada en base64 de su nombre de usuario y su token de acceso personal (PAT) en formato `username:password`. Puede generarlo utilizando el comando siguiente:

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

      Puedes generar tu PAT en la GitHub consola en **Tu perfil > Configuración > Configuración de desarrolladores > Token** de acceso personal. [Para obtener más información, consulte la siguiente guía: 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)

**nota**  
Al crear los secretos anteriores en Secrets Manager, recuerde dar un nombre de secreto con el siguiente prefijo: `/CodeBuild/`

## Paso 6: creación de una flota de computación
<a name="sample-fastlane-github-fleet"></a>

Cree la flota de computación para el proyecto.

****

1. En la consola, vaya a CodeBuild y cree una nueva flota de cómputos.

1. Elija `macOS` como sistema operativo y seleccione un tipo de computación y una imagen adecuados.

## Paso 7: Crea un proyecto en CodeBuild
<a name="sample-fastlane-github-project"></a>

Crea tu proyecto en CodeBuild.

****

1. Abre la AWS CodeBuild consola en [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Cree un proyecto de compilación. Para obtener más información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console) y [Ejecutar una compilación (consola)](run-build-console.md).

1. Configura tu proveedor de código fuente (por ejemplo,). GitHub CodeCommit Este es el repositorio de origen de proyectos de iOS y no el repositorio de certificados.

1.  En **Environment (Entorno)**: 
   + Elija **Capacidad reservada**.
   + En **Flota**, seleccione la flota creada anteriormente.
   + Proporcione el nombre del rol de servicio que CodeBuild se va a crear para usted.
   + Proporcione las siguientes variables de entorno.
     + Nombre:`MATCH_PASSWORD`, Valor:*<secrets arn>*, Tipo: Secrets Manager (el ARN secreto se creó en el paso 5 para MATCH\$1PASSWORD)
     + Nombre:`FASTLANE_SESSION`, Valor:*<secrets arn>*, Tipo: Secrets Manager (el ARN de secretos se creó en el paso 5 para FASTLANE\$1SESSION)
     + Nombre:`MATCH_GIT_BASIC_AUTHORIZATION`, Valor:*<secrets ARN>*, Tipo: Secrets Manager Secrets ARN (creado en el paso 5 para) `MATCH_GIT_BASIC_AUTHORIZATION`

1. En **Buildspec**, agregue lo siguiente:

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

## Paso 8: Ejecuta la compilación
<a name="sample-fastlane-github-run"></a>

Ejecute la compilación. Puedes revisar el estado de la compilación e iniciar sesión CodeBuild.

Una vez que se haya completado el trabajo, podrá ver el registro de este.

## Resolución de problemas
<a name="sample-fastlane-github-troubleshooting"></a>
+ Si tienes problemas para acceder al GitHub repositorio, comprueba bien tu token de acceso personal y la variable de entorno MATCH\$1GIT\$1BASIC\$1AUTHORIZATION.
+ Si tiene problemas al descifrar certificados, asegúrese de establecer la frase contraseña correcta en la variable de entorno MATCH\$1PASSWORD.
+ En caso de problemas con la firma de código, compruebe que la cuenta de desarrollador de Apple tiene los certificados y los perfiles necesarios y que el identificador de agrupación del proyecto de Xcode coincide con el del perfil de aprovisionamiento.

## Consideraciones de seguridad
<a name="sample-fastlane-github-considerations"></a>

Tenga en cuenta los siguientes aspectos de seguridad en este tutorial.
+ Mantenga su GitHub repositorio de certificados privado y audite periódicamente el acceso.
+ Considere usarlo AWS Secrets Manager para almacenar información confidencial, como MATCH\$1PASSWORD y FASTLANE\$1SESSION.

En este ejemplo, se proporciona una configuración para la firma de código de iOS con Fastlane y se CodeBuild utiliza GitHub para el almacenamiento de certificados. Es posible que tengas que ajustar algunos pasos en función de los requisitos y el CodeBuild entorno específicos de tu proyecto. Este enfoque aprovecha los AWS servicios para mejorar la seguridad y la integración dentro del AWS ecosistema.