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.
Configura ejecutores de GitHub Actions autohospedados en AWS CodeBuild
Puedes configurar tu proyecto para configurar ejecutores de GitHub Actions autohospedados en CodeBuild contenedores para procesar tus trabajos de flujo de trabajo de GitHub Actions. Para ello, puedes configurar un webhook con tu CodeBuild proyecto y actualizar el flujo de trabajo de GitHub Actions (YAML) para que utilice ejecutores autohospedados y alojados en máquinas. CodeBuild Para obtener más información, consulta Acerca
Los pasos generales para configurar un CodeBuild proyecto para ejecutar tareas de GitHub Actions son los siguientes:
-
Si aún no lo has hecho, crea un token de acceso personal o conéctate a una aplicación de OAuth a la que conectar tu proyecto. GitHub
-
Ve a la CodeBuild consola y crea un CodeBuild proyecto con un webhook y configura tus filtros de webhook.
-
Actualiza el flujo de trabajo de GitHub Actions en YAML GitHub para configurar tu entorno de compilación.
Para obtener un procedimiento más detallado, consulteTutorial: Configurar un ejecutor de acciones CodeBuild autohospedado GitHub .
Esta función permite que sus trabajos de flujo de trabajo de GitHub Actions se integren de forma nativa AWS, lo que proporciona seguridad y comodidad a través de funciones como IAM AWS CloudTrail, AWS Secrets Manager integración y Amazon VPC. Puede acceder a los tipos de instancias más recientes, incluidas las instancias basadas en ARM.
Temas
Tutorial: Configurar un ejecutor de acciones CodeBuild autohospedado GitHub
Este tutorial le muestra cómo configurar sus CodeBuild proyectos para ejecutar trabajos de GitHub Actions.
Requisitos previos
Para completar este tutorial, primero debe:
-
Conéctate con una aplicación OAuth o crea un token de acceso personal. Si quieres conectarte con una aplicación OAuth, debes usar la CodeBuild consola para hacerlo. Si quieres crear un token de acceso personal, puedes usar la CodeBuild consola o la API. ImportSourceCredentials Para obtener más instrucciones, consulteGitHub y un token de acceso a GitHub Enterprise Server.
-
Conéctate CodeBuild a tu GitHub cuenta. Para ello, puede hacer una de las acciones siguientes:
-
Puedes añadirlo GitHub como proveedor de fuentes en la consola. Puedes conectarte con una aplicación OAuth o con un token de acceso personal. Para ver instrucciones, consulte Conéctese GitHub con un token de acceso (consola) .
-
Puedes importar tus GitHub credenciales a través de la ImportSourceCredentials API. Esto solo se puede hacer con un token de acceso personal. Si te conectas mediante una aplicación OAuth, debes conectarte mediante la consola en su lugar. Para ver instrucciones, consulte Conéctese GitHub con un token de acceso (CLI) .
nota
Esto solo es necesario si no te has conectado a tu GitHub cuenta.
-
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 GitHub 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, elija GitHub.
-
En Repositorio, selecciona Repositorio en mi GitHub cuenta.
-
En URL de repositorio, especifique
https://github.com/
user-name
/repository-name
-
-
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 activado, las compilaciones solo se activarán mediante eventos de tareas del flujo de trabajo de Actions. GitHub
nota
CodeBuild solo procesará los eventos de los trabajos del flujo de trabajo de GitHub Actions si un webhook tiene grupos de filtros que contengan el filtro de eventos WORKFLOW_JOB_QUEUED.
-
-
En Environment (Entorno):
-
Elija una imagen de entorno y un proceso de cómputo compatibles. Ten en cuenta que tienes la opción de anular la configuración de la imagen y la instancia mediante una etiqueta en el flujo de trabajo de GitHub Actions (YAML). Para obtener más información, consulte Paso 2: actualiza el flujo de trabajo de GitHub Actions (YAML).
-
-
En Buildspec:
-
Ten en cuenta que se ignorará tu Buildspec. En su lugar, lo CodeBuild anulará para usar comandos que configurarán el ejecutor autohospedado. La responsabilidad principal de este proyecto es configurar un ejecutor autohospedado para ejecutar los trabajos del flujo de trabajo CodeBuild de GitHub Actions.
-
-
-
Continúe con los valores predeterminados y, a continuación, elija Crear proyecto de compilación.
-
Abre la GitHub consola en
https://github.com/
para comprobar que se ha creado un webhook y que está habilitado para entregar eventos de Workflow Jobs.user-name
/repository-name
/settings/hooks
Paso 2: actualiza el flujo de trabajo de GitHub Actions (YAML)
En este paso, actualizarás el archivo YAML del flujo de trabajo de GitHub Actions GitHub
Actualiza el flujo de trabajo de GitHub Actions (YAML
Ve a la runs-on
GitHub
-
Puedes especificar el nombre del proyecto y el ID de ejecución, 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 trabajo de GitHub Actions a un CodeBuild proyecto específico. Al incluir el nombre del proyecto en el YAML, CodeBuild se pueden invocar trabajos con la configuración de proyecto correcta. Al proporcionar el ID de ejecución, CodeBuild asignará tu compilación a ejecuciones de flujo de trabajo específicas y detendrá la compilación cuando se cancele la ejecución del flujo de trabajo. Para obtener más información, consulta
github
el contexto. runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}nota
Asegúrese de que
<project-name>coincide con el nombre del proyecto que creó en el paso anterior. Si no coincide, no CodeBuild procesará el webhook y es posible que el flujo de trabajo de GitHub Actions se bloquee.
El siguiente es un ejemplo de un flujo de trabajo YAML de GitHub Actions:
name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }} steps: - run: echo "Hello World!"
-
También puedes anular la imagen y el tipo de procesamiento en la etiqueta. Esto anulará la configuración del entorno del proyecto. Para anular la configuración del entorno para una compilación informática de Amazon EC2, utilice la siguiente sintaxis:
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-<image>
-<image-version>
-<instance-size>
Para anular la configuración de su entorno para una compilación de procesamiento Lambda, utilice la siguiente sintaxis:
runs-on: codebuild-
<project-name>
-${{ github.run_id }}-${{ github.run_attempt }}-<environment-type>
-<runtime-version>
-<instance-size>
A continuación, se muestra un ejemplo de un flujo de trabajo YAML de GitHub Actions:
name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}-arm-3.0-small steps: - run: echo "Hello World!"
nota
Si una dependencia proporcionada por los GitHub ejecutores alojados no está disponible en el CodeBuild entorno, puedes instalarla mediante GitHub Actions en la ejecución de tu flujo de trabajo. Por ejemplo, puedes usar la setup-python
Imágenes de cómputo compatibles
En la etiqueta, puede anular la configuración del entorno de Amazon EC2 utilizando los valores de las tres primeras columnas. CodeBuild proporciona las siguientes imágenes informáticas de Amazon EC2:
Imagen | Versión de imagen | Tamaño de instancia | Plataforma | Identificador de imagen | Definición |
---|---|---|---|---|---|
|
|
|
Amazon Linux 2 | aws/codebuild/amazonlinux2-x86_64-standard:4.0 |
al2/standard/4.0 |
|
|
Amazon Linux 2023 | aws/codebuild/amazonlinux2-x86_64-standard:5.0 |
al2/standard/5.0 |
|
|
|
|
Amazon Linux 2 | aws/codebuild/amazonlinux2-aarch64-standard:2.0 |
al2/aarch64/standard/2.0 |
|
|
Amazon Linux 2023 | aws/codebuild/amazonlinux2-aarch64-standard:3.0 |
al2/aarch64/standard/3.0 |
|
|
|
|
Ubuntu 20.04 | aws/codebuild/standard:5.0 |
ubuntu/standard/5.0 |
|
|
Ubuntu 22.04 | aws/codebuild/standard:6.0 |
ubuntu/standard/6.0 |
|
|
|
Ubuntu 22.04 | aws/codebuild/standard:7.0 |
ubuntu/standard/7.0 |
|
|
|
|
Windows Server Core 2019 | aws/codebuild/windows-base:2019-1.0 |
N/A |
|
|
Windows Server Core 2019 | aws/codebuild/windows-base:2019-2.0 |
N/A | |
|
|
Windows Server Core 2019 | aws/codebuild/windows-base:2019-3.0 |
N/A |
Además, puede anular la configuración del entorno Lambda mediante los siguientes valores. Para obtener más información sobre la computación CodeBuild Lambda, consulte Trabajar con. Trabajar con AWS Lambda computación en AWS CodeBuild CodeBuild admite las siguientes imágenes de procesamiento Lambda:
Tipo de entorno | Versión de runtime | Tamaño de instancia |
---|---|---|
|
|
|
|
Para obtener más información, consulte Modos y tipos de computación del entorno de compilación y Imágenes de Docker proporcionadas por CodeBuild.
Paso 3: Revise los resultados
Siempre que se ejecute un flujo de trabajo de GitHub Actions, CodeBuild recibirá los eventos del trabajo del flujo de trabajo a través del webhook. Para cada trabajo del flujo de trabajo, CodeBuild inicia una compilación para ejecutar un ejecutor efímero GitHub de Actions. El ejecutor es responsable de ejecutar un único trabajo de flujo de trabajo. Una vez que se complete el trabajo, el ejecutor y el proceso de creación asociado finalizarán inmediatamente.
Para ver los registros de trabajos de tu flujo de trabajo, navega hasta tu repositorio, selecciona Acciones, elige el flujo de trabajo que desees y, a continuación, elige el trabajo específico para el que quieres revisar los registros. GitHub
Puedes revisar las etiquetas solicitadas en el registro mientras el trabajo está esperando a que lo recoja un agente autohospedado. CodeBuild
Una vez que se haya completado el trabajo, podrá ver el registro del trabajo.
Acerca de CodeBuild -hosted GitHub Actions Runner
¿Cuándo debo incluir las modificaciones de imagen e instancia en la etiqueta?
Puedes incluir las modificaciones de imagen e instancia en la etiqueta para especificar un entorno de compilación diferente para cada uno de tus trabajos del flujo de trabajo de GitHub Actions. Esto se puede hacer sin necesidad de crear varios CodeBuild proyectos o webhooks. Por ejemplo, esto resulta útil cuando necesitas usar una matriz para tus trabajos de flujo de trabajo
name: Hello World on: [push] jobs: Hello-World-Job: runs-on: codebuild-myProject-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.os }} strategy: matrix: os: [arm-3.0-small, al2-5.0-large] steps: - run: echo "Hello World!"
nota
Las comillas pueden ser obligatorias si runs-on
tiene varias etiquetas que contienen el contexto de GitHub las acciones.
¿Puedo AWS CloudFormation utilizarla para esta función?
Sí, puedes incluir un grupo de filtros en tu AWS CloudFormation plantilla que especifique un filtro de eventos de trabajo del flujo de trabajo de GitHub Actions en el webhook de tu proyecto.
Triggers: Webhook: true FilterGroups: - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED
Para obtener más información, consulte Filtra los eventos de GitHub webhook ()AWS CloudFormation.
Si necesitas ayuda para configurar las credenciales del proyecto en tu AWS CloudFormation plantilla, consulta AWS::CodeBuild::SourceCredentialla Guía del AWS CloudFormation usuario para obtener más información.
¿Qué regiones admiten el uso de un ejecutor CodeBuild de GitHub Actions alojado?
CodeBuildLos ejecutores de GitHub Actions alojados en él son compatibles en todas las CodeBuild regiones. Para obtener más información sobre Regiones de AWS dónde CodeBuild está disponible, consulta AWS Servicios por región.
¿Qué plataformas admiten el uso de un CodeBuild ejecutor de GitHub acciones alojado?
CodeBuild-Los ejecutores de GitHub Actions alojados son compatibles tanto con Amazon EC2 AWS Lambdacomo con Compute. Puede utilizar las siguientes plataformas: Amazon Linux 2, Amazon Linux 2023, Ubuntu y Windows Server Core 2019. Para obtener más información, consulte Imágenes de computación de EC2 y Imágenes de computación de Lambda.
Solución de problemas: ¿Cómo soluciono los problemas si el webhook no funciona?
Problema: tu webhook no funciona o tu flujo de trabajo está pendiente. GitHub
Causa posible: es posible que el evento de trabajos de flujo de trabajo de tu webhook no esté activando una compilación. Revisa los registros de respuestas para ver la respuesta o el mensaje de error.
Solución recomendada: para depurar este error, siga las instrucciones siguientes.
-
Abre la GitHub consola en
https://github.com/
para ver la configuración de webhook de tu repositorio. En esta página, verás un webhook que se creó para tu repositorio.user-name
/repository-name
/settings/hooks -
Selecciona Editar y comprueba que el webhook está habilitado para publicar eventos de Workflow Jobs.
-
Vaya a la pestaña Entregas recientes, busque el
workflow_job.queued
evento correspondiente y amplíe el evento. -
Revisa el campo de etiquetas de la carga útil y asegúrate de que está según lo esperado.
-
Por último, revisa la pestaña Respuesta, ya que contiene la respuesta o el mensaje de CodeBuild error devuelto.