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: Configurar un CodeBuild ejecutor alojado GitLab
Este tutorial le muestra cómo configurar sus CodeBuild proyectos para ejecutar tareas de canalización de GitLab CI/CD. Para obtener más información sobre el uso GitLab o la GitLab autogestión con ella CodeBuild, consulte. Ejecutores autogestionados GitLab en AWS CodeBuild
Para completar este tutorial, primero debe:
-
Conéctese con una OAuth aplicación mediante CodeConnections. Ten en cuenta que cuando te conectes con una OAuth aplicación, debes usar la CodeBuild consola para hacerlo. Para obtener instrucciones adicionales, consulte GitLab acceder en CodeBuild.
-
Conéctate CodeBuild a tu GitLab cuenta. Para ello, puedes añadirlo GitLab como proveedor de fuentes en la consola. Para obtener instrucciones, consulte GitLab acceder en CodeBuild.
nota
Esto solo es necesario si no te has conectado GitLab a tu cuenta.
Con esta función, CodeBuild necesita permisos adicionales, como
create_runner
ymanage_runner
desde la GitLab OAuth aplicación. Si existen CodeConnections para una GitLab cuenta en particular, no solicitará automáticamente las actualizaciones de permisos. Para ello, puedes ir a la CodeConnections consola y crear una conexión ficticia con la misma GitLab cuenta para activar la reautorización y obtener los permisos adicionales. De este modo, todas las conexiones existentes pueden utilizar la función Runner. Una vez completada, puede eliminar la conexión ficticia.
Paso 1: Crea un CodeBuild proyecto con un webhook
En este paso, crearás un CodeBuild proyecto con un webhook y lo revisarás en la GitLab consola.
Para crear un CodeBuild proyecto con un webhook
-
Abre la AWS CodeBuild consola en https://console.aws.amazon.com/codesuite/codebuild/home
. -
Cree un proyecto de compilación. Para obtener más información, consulte Creación de un proyecto de compilación (consola) y Ejecutar una compilación (consola).
-
En Source (Código fuente):
-
En Proveedor de código fuente, selecciona. GitLab
-
En Credencial, elija una de las siguientes opciones:
-
Elija la credencial de origen predeterminada. La conexión predeterminada aplica una GitLab conexión predeterminada en todos los proyectos.
-
Elija Credencial de origen personalizada. La conexión personalizada aplica una GitLab conexión personalizada que anula la configuración predeterminada de tu cuenta.
nota
Si aún no has creado una conexión con tu proveedor, tendrás que crear una nueva GitLab. Para obtener instrucciones, consulte Conectarse CodeBuild a GitLab.
-
-
En Repositorio, elija el nombre de su proyecto GitLab especificando la ruta del proyecto con el espacio de nombres.
-
-
En los eventos de webhook de fuente principal:
-
En el caso de Webhook (opcional), selecciona Reconstruir cada vez que se introduzca un cambio de código en este repositorio.
-
En Tipo de evento, selecciona WORKFLOW_ JOB _ QUEUED. Una vez que esté activado, las compilaciones solo se activarán mediante eventos de trabajos en canalización de GitLab CI/CD.
nota
CodeBuild solo procesará los eventos de trabajos en canalización de GitLab CI/CD si un webhook tiene grupos de filtros que contengan el WORKFLOW filtro de eventos _ _. JOB QUEUED
-
-
En Environment (Entorno):
-
Elija una imagen de entorno y un proceso de cómputo compatibles. Tenga en cuenta que tiene la opción de anular la configuración de la imagen y la instancia mediante una etiqueta en su canalización de GitLab CI/CD. YAML Para obtener más información, consulte Paso 2: Crea un archivo.gitlab-ci.yml en tu repositorio.
-
-
En Buildspec:
-
Ten en cuenta que tu especificación de compilación se ignorará a menos
buildspec-override:true
que se añada como etiqueta. En su lugar, la CodeBuild anulará para usar comandos que configurarán el ejecutor autogestionado.
-
-
-
Continúe con los valores predeterminados y, a continuación, elija Crear proyecto de compilación.
-
Abre la GitLab consola en
https://gitlab.com/
para comprobar que se ha creado un webhook y que está habilitado para entregar eventos de Workflow Jobs.user-name
/repository-name
/-/hooks
Paso 2: Crea un archivo.gitlab-ci.yml en tu repositorio
En este paso, crearás un .gitlab-ci.yml
archivo para configurar tu entorno de compilación y utilizar ejecutores GitLab
Actualice su canalización de GitLab CI/CD YAML
Navegue hasta su https://gitlab.com/
repositorio y cree un user-name
/project-name
/-/tree/branch-name
.gitlab-ci.yml
archivo en él. Puedes configurar tu entorno de compilación mediante una de las siguientes acciones:
-
Puedes especificar el nombre del CodeBuild proyecto, en cuyo caso la compilación utilizará la configuración de proyecto existente para el cálculo, la imagen, la versión de la imagen y el tamaño de la instancia. El nombre del proyecto es necesario para vincular la configuración AWS relacionada de tu GitLab trabajo a un CodeBuild proyecto específico. Al incluir el nombre del proyecto en elYAML, CodeBuild se pueden invocar trabajos con la configuración de proyecto correcta.
tags: - codebuild-
<codebuild-project-name>
-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME
es necesario para mapear la construcción con tareas de canalización específicas y detener la construcción cuando se cancela la ejecución de la canalización.nota
Asegúrese de que su
<project-name>
coincide con el nombre del proyecto en el que creaste CodeBuild. Si no coincide, no CodeBuild procesará el webhook y la canalización de GitLab CI/CD podría bloquearse.El siguiente es un ejemplo de una canalización de CI/CD GitLab : YAML
workflow: name: HelloWorld stages: # List of stages for jobs, and their order of execution - build build-job: # This job runs in the build stage, which runs first. stage: build script: - echo "Hello World!" tags: - codebuild-myProject-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME
-
También puede anular la imagen y el tipo de cálculo en la etiqueta. Consulte Calcule imágenes compatibles con el ejecutor alojado CodeBuild GitLab para obtener una lista de las imágenes disponibles. El tipo de procesamiento y la imagen de la etiqueta anularán la configuración del entorno del proyecto. Para anular la configuración de su entorno para una compilación de Amazon EC2 Compute, utilice la siguiente sintaxis:
tags: - codebuild-
<codebuild-project-name>
-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - image:<environment-type>
-<image-identifier>
- instance-size:<instance-size>
El siguiente es un ejemplo de una canalización de GitLab CI/CD: YAML
stages: - build build-job: stage: build script: - echo "Hello World!" tags: - codebuild-myProject-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - image:arm-3.0 - instance-size:small
-
Puedes anular la flota utilizada para tu construcción en la etiqueta. Esto anulará los ajustes de flota configurados en tu proyecto para usar la flota especificada. Para obtener más información, consulte Run se basa en flotas de capacidad reservada. Para anular la configuración de tu flota para una compilación de Amazon EC2 Compute, usa la siguiente sintaxis:
tags: - codebuild-
<codebuild-project-name>
-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - fleet:<fleet-name>
Para anular tanto la flota como la imagen utilizadas para la compilación, utilice la siguiente sintaxis:
tags: - codebuild-
<codebuild-project-name>
-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - fleet:<fleet-name>
- image:<environment-type>
-<image-identifier>
El siguiente es un ejemplo de una canalización de GitLab CI/CD: YAML
stages: - build build-job: stage: build script: - echo "Hello World!" tags: - codebuild-myProject-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - fleet:myFleet - image:arm-3.0
-
Para ejecutar sus trabajos de canalización de GitLab CI/CD en una imagen personalizada, puede configurar una imagen personalizada en su CodeBuild proyecto y evitar tener que incluir una etiqueta de reemplazo de imagen. CodeBuild utilizará la imagen configurada en el proyecto si no se proporciona una etiqueta de anulación de imagen.
Una vez que confirmes los cambios.gitlab-ci.yml
, se activará una GitLab canalización y build-job
se enviará una notificación de webhook para iniciar la compilación. CodeBuild
Ejecuta los comandos buildspec en las fasesINSTALL, PRE _ y _ BUILD POST BUILD
De forma predeterminada, CodeBuild omite cualquier comando de buildspec al ejecutar una compilación autogestionada. GitLab Para ejecutar los comandos buildspec durante la compilación, buildspec-override:true
puedes añadirlos como sufijo a: tags
tags: - codebuild-
<codebuild-project-name>
-$CI_PROJECT_ID-$CI_PIPELINE_IID-$CI_JOB_NAME - buildspec-override:true
Al usar este comando, CodeBuild se creará una carpeta llamada carpeta de gitlab-runner
origen principal del contenedor. Cuando el GitLab ejecutor se inicie durante la BUILD
fase, se ejecutará en el gitlab-runner
directorio.
Existen varias limitaciones a la hora de utilizar una modificación de las especificaciones de compilación en una compilación autogestionada: GitLab
-
CodeBuild no ejecutará los comandos buildspec durante la fase, ya que el ejecutor autogestionado se ejecuta en la
BUILD
fase.BUILD
-
CodeBuild no descargará ninguna fuente primaria o secundaria durante la fase.
DOWNLOAD_SOURCE
Si tienes un archivo buildspec configurado, solo se descargará ese archivo de la fuente principal del proyecto. -
Si un comando de compilación falla en la
INSTALL
fasePRE_BUILD
o, no CodeBuild se iniciará el ejecutor autogestionado y será necesario cancelar manualmente la tarea de canalización de GitLab CI/CD. -
CodeBuild obtiene el token del corredor durante la
DOWNLOAD_SOURCE
fase, que tiene un tiempo de caducidad de una hora. Si tusPRE_BUILD
INSTALL
fases superan una hora, el token de corredor puede caducar antes de que comience el corredor GitLab autogestionado.
Paso 3: Revisa tus resultados
Siempre que se trate de un trabajo en GitLab CI/CD pipeline run occurs, CodeBuild would receive the CI/CD pipeline job events through the webhook. For each job in the CI/CD pipeline, CodeBuild starts a build to run an ephemeral GitLab runner. The runner is responsible for executing a single CI/CD canalización. Una vez que se complete el trabajo, el canal y el proceso de construcción asociado finalizarán inmediatamente.
Para ver los registros de trabajos de su canalización de CI/CD, navegue hasta su repositorio GitLab, elija Build, Jobs y, a continuación, elija el trabajo específico para el que desea revisar los registros.
Puede revisar las etiquetas solicitadas en el registro mientras el trabajo espera a que lo recoja una persona autogestionada. CodeBuild
Filtra los eventos de los GitLab webhooks ()AWS CloudFormation
La siguiente parte de una AWS CloudFormation
plantilla YAML con formato crea un grupo de filtros que activa una compilación cuando se evalúa como verdadera. El siguiente grupo de filtros especifica un nombre de GitLab CI/CD pipeline job request with a
CI/CD canalización que coincide con la expresión regular. \[CI-CodeBuild\]
CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject ServiceRole: service-role Artifacts: Type: NO_ARTIFACTS Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:5.0 Source: Type: GITLAB Location: CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION Triggers: Webhook: true ScopeConfiguration: Name: group-name FilterGroups: - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED - Type: WORKFLOW_NAME Pattern: \[CI-CodeBuild\]