AWS CodeBuild admite GitHub Enterprise Server como repositorio de código fuente. Este ejemplo muestra cómo configurar proyectos de CodeBuild cuando el repositorio de GitHub Enterprise Server tiene un certificado instalado. También muestra cómo habilitar webhooks para que CodeBuild vuelva a compilar el código fuente cada vez que se envíe un cambio de código al repositorio de GitHub Enterprise Server.
Temas
Requisitos previos
-
Genere un token de acceso personal para el proyecto de CodeBuild. Le recomendamos que cree un usuario de GitHub Enterprise y que genere un token de acceso personal para dicho usuario. Cópielo en el portapapeles para que pueda utilizarlo al crear un proyecto de CodeBuild. Para obtener más información, consulte Creating a personal access token for the command line
en el sitio web GitHub Help. Cuando cree el token de acceso personal, incluya el ámbito del repositorio en la definición.
-
Descargue el 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
.pemSustituya los marcadores de posición del comando por los siguientes valores:
HOST
. La dirección IP del repositorio de GitHub Enterprise Server.PORTNUMBER
. El número de puerto que se utiliza para conectarse (por ejemplo, 443).folder
. La carpeta en la que se ha descargado el certificado.nombre de archivo
. El nombre de archivo del archivo de certificado.importante
Guarde el certificado como un archivo .pem.
Clientes de Windows:
Use el navegador para descargar el certificado desde 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.
-
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? 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?
nota
Este bucket debe estar en la misma región de AWS que las compilaciones. Por ejemplo, si indica a CodeBuild que ejecute una compilación en la región Este de EE. UU. (Ohio), el bucket debe estar en la región Este de EE. UU. (Ohio).
Paso 1: Crear un proyecto de compilación con GitHub Enterprise Server y habilitar los webhooks
Abra la consola de AWS CodeBuild en https://console.aws.amazon.com/codesuite/codebuild/home
. Si se muestra una página de información de CodeBuild, 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.
En Project name (Nombre de proyecto), escriba un nombre para este proyecto de compilación. Los nombres de los proyectos de compilación debe ser únicos en cada cuenta de AWS. 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.
-
En Source (Código fuente), en Source provider (Proveedor de código fuente), elija GitHub Enterprise.
-
En Personal Access Token, pegue el token que ha copiado en el portapapeles y elija Save Token. En Repository URL, introduzca la URL del repositorio de GitHub Enterprise Server.
nota
Solo es necesario introducir y guardar el token de acceso personal una vez. Todos los proyectos futuros de AWS CodeBuild utilizarán este token.
-
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.
-
Seleccione Enable insecure SSL (Habilitar SSL no seguro) para omitir las advertencias de SSL cuando se conecte al repositorio del proyecto 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.
-
En Environment (Entorno):
En Environment image (Imagen del entorno), realice alguna de las siguientes operaciones:
-
Para usar una imagen de Docker administrada por AWS CodeBuild, elija Managed image (Imagen administrada) y después elija una opción en Operating system (Sistema operativo), Runtime (Tiempo de ejecución), Image (Imagen) e Image version (Versión de 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
. 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.docker repository
/docker image name
-
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 en la Guía del usuario de AWS Secrets Manager.
-
En Service role (Rol de servicio), realice una de las operaciones siguientes:
-
Si no tiene un rol de servicio de CodeBuild, elija Nuevo rol de servicio. Escriba un nombre para el nuevo rol en el campo Role Name.
-
Si tiene un rol de servicio de CodeBuild, elija Rol de servicio existente. En ARN de rol, seleccione el rol de servicio.
nota
Si utiliza la consola para crear o actualizar un proyecto de compilación, puede crear un rol de servicio de CodeBuild 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.
-
-
Expanda Configuración adicional.
Si desea que CodeBuild funcione con su VPC:
-
En VPC, elija el ID de VPC utilizado por CodeBuild.
-
En Subredes VPC, elija las subredes que contienen recursos utilizados por CodeBuild.
-
En Grupos de seguridad de VPC, elija los grupos de seguridad utilizados por CodeBuild para permitir el acceso a los recursos de las VPC.
Para obtener más información, consulte Uso de AWS CodeBuild con Amazon Virtual Private Cloud.
-
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 Referencia de la especificación de compilación.
-
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 defiles
en Sintaxis de buildspec.
-
-
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. Para obtener más información acerca del almacenamiento en caché, consulte Almacenamiento de las compilaciones en caché para mejorar el rendimiento.
-
-
Elija Crear el proyecto de compilación. En la página del proyecto de compilación, elija Start build (Iniciar compilación).
-
Si ha habilitado los webhooks en Source (Código fuente), aparecerá el cuadro de diálogo Create webhook (Crear webhook) con los valores para Payload URL (URL de carga) y Secret (Secreto).
importante
El cuadro de diálogo Create webhook solo aparecerá una vez. Copie la URL de carga y la clave secreta. Las necesitará al añadir un webhook en GitHub Enterprise Server.
Si necesita generar de nuevo una URL de carga y una clave secreta, primero debe eliminar el webhook del repositorio de GitHub Enterprise Server. En el proyecto de CodeBuild, desactive la casilla Webhook y elija Guardar. A continuación, puede crear o actualizar un proyecto de CodeBuild con la casilla Webhook seleccionada. El cuadro de diálogo Create webhook aparecerá de nuevo.
-
En GitHub Enterprise Server, elija el repositorio en el que está almacenado su proyecto de CodeBuild.
-
Elija Settings (Configuración), elija Hooks & services (Enlaces y servicios) y, a continuación, elija Add webhook (Añadir webhook).
-
Introduzca la URL de carga y la clave secreta, acepte los valores predeterminados para el resto de los campos y elija Add webhook.
-
Regrese a su proyecto de CodeBuild. Cierre el cuadro de diálogo Create webhook y elija Start build.