Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.
GitHub AE está actualmente en un lanzamiento limitado. Por favor, contacta a nuestro equipo de ventas para conocer más sobre esto.

Usar ejecutores autoalojados en un flujo de trabajo

Para usar los ejecutores autoalojados en un flujo de trabajo, puedes usar etiquetas para especificar el tipo de ejecutores para un trabajo.

Advertencia: Los ejecutores auto-hospedados son de vida larga y cualquier situación que ponga en riesgo a la máquina que los hospeda podría filtrar secretos o credenciales o habilitar otros ataques. Para obtener más información sobre los riesgos de utilizar ejecutores auto-hospedados, consulta la sección "Fortalecimiento de seguridad para las GitHub Actions". Para obtener más información sobre la administración del acceso a GitHub Actions para tu empresa, consulta la sección "Requerir políticas de GitHub Actions para tu empresa".

Para obtener más información sobre cómo crear etiquetas personalizadas y predeterminadas, consulta la sección "Utilizar etiquetas con ejecutores auto-hospedados".

Usar ejecutores autoalojados en un flujo de trabajo

Las etiquetas te permiten enviar jobs de flujo de trabajo a tipos específicos de ejecutores auto-hospedados, de acuerdo con sus características compartidas. Por ejemplo, si tu job requiere una componente de hardware o paquete de software específico, puedes asignar una etiqueta personalizada a un ejecutor y después configurar tu job para que solo se ejecute en los ejecutores con esta etiqueta.

Para especificar un ejecutor auto-hospedado para tu trabajo, configura runs-on en tu archivo de flujo de trabajo con las etiquetas de dicho ejecutor.

Todos los ejecutores auto-hospedados tienen la etiqueta self-hosted. El utilizar únicamente esta etiqueta seleccionará cualquier ejecutor auto-hospedado. Para seleccionar los ejecutores que cumplen con ciertos criterios, tales como el sistema operativo o arquitectura, te recomendamos proporcionar un arreglo de etiquetas que comience con self-hosted (este se debe listar primero) y que luego incluya etiquetas adicionales conforme lo requieras. Cuando especifiques un arreglo de etiquetas, los jobs se pondrán en cola cuando se trate de ejecutores que tengan todas las etiquetas que especificas.

Aunque la etiqueta de self-hosted no se requiere, te recomendamos ampliamente especificarla cuando utilices ejecutores auto-hospedados para garantizar que tu trabajo no especifique algún ejecutor hospedado en GitHub futuro o actual por accidente.

Para obtener más información, consulta "Sintaxis de flujo de trabajo para GitHub Actions."

Utilizar etiquetas predeterminadas para enrutar jobs

Un ejecutor auto-hospedado recibe ciertas etiquetas automáticamente cuando se agrega a GitHub Actions. Estas se utilizan para indicar su sistema operativo y plataforma de hardware:

  • autoalojado: Etiqueta por defecto aplicada a todos los ejecutores autoalojados.
  • linux, windows, o macOS: Se aplican dependiendo del sistema operativo.
  • x64, ARM, or ARM64: Se aplican dependiendo de la arquitectura del hardware.

Puedes utilizar el YAML de tu flujo de trabajo para mandar jobs a las diferentes combinaciones de estas etiquetas. En este ejemplo, un ejecutor auto-hospedado que empate con las tres etiquetas será elegible para ejecutar el job:

runs-on: [self-hosted, linux, ARM64]
  • self-hosted - Ejecuta este job en un ejecutor auto-hospedado.
  • linux - Utiliza únicamente un ejecutor basado en Linux.
  • ARM64 - Utiliza únicamente un ejecutor basado en hardware ARM64.

Las etiquetas predeterminadas son fijas y no se pueden cambiar ni eliminar. Considera utilizar etiquetas personalizadas si necesitas más control sobre el enrutamiento de los jobs.

Utilizar etiquetas personalizadas para enrutar jobs

Puedes crear etiquetas personalizadas y asignarlas a tus ejecutores auto-hospedados en cualquier momento. Las etiquetas personalizadas te permiten enviar jobs a tipos particulares de ejecutores auto-hospedados, basándose en cómo se etiquetan.

Por ejemplo, si tienes un job que requiere un tipo específico de hardware de gráficos, puedes crear una etiqueta personalizada llamada gpu y asignarla a los ejecutores que tengan instalado este hardware. Un ejecutor auto-hospedado que empate con las etiquetas asignadas será entonces elegible para ejecutar el job.

Este ejemplo muestra un job que combina etiquetas predeterminadas y personalizadas:

runs-on: [self-hosted, linux, x64, gpu]
  • self-hosted - Ejecuta este job en un ejecutor auto-hospedado.
  • linux - Utiliza únicamente un ejecutor basado en Linux.
  • x64 - Utiliza únicamente un ejecutor basado en hardware x64.
  • gpu - Esta etiqueta personalizada se asignó manualmente a los ejecutores auto-hospedados con hardware de GPU instalado.

Estas etiquetas operan acumulativamente, así que las etiquetas de un ejecutor auto-hospedado deberán empatar con los cuatro criterios para poder ser elegibles para procesar el job.

Precedencia de enrutamiento para los ejecutores auto-hospedados

Cuando enrutas un job hacia un ejecutor auto-hospedado, GitHub busca un ejecutor que coincida con las etiquetas runs-on del job:

  • Si GitHub encuentra un ejecutor inactivo en línea que empate con las etiquetas de runs-on del job, este se asignará y enviará al ejecutor.
    • Si ele ejecutor no recoge el job asignado en 60 segundos, este volverá a ponerse en cola para que el ejecutor nuevo pueda aceptarlo.
  • Si GitHub no encuentra un ejecutor en línea y uno inactivo que empato con sus etiquetas de runs-on, entonces dicho job permanecerá en cola hasta que un ejecutor se conecte.
  • Si el job permanece en cola por más de 24 horas, este fallará.

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.