Nota:
Actualmente los ejecutores hospedados por GitHub no se admiten en GitHub Enterprise Server.
Utilizar etiquetas predeterminadas para enrutar tareas
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:
-
`self-hosted`: etiqueta predeterminada que se aplica a los ejecutores autohospedados. -
`linux`, `windows` o `macOS`: se aplica según el sistema operativo. -
`x64`, `ARM` o `ARM64`: se aplica en función de la arquitectura de hardware.
Puedes utilizar el YAML de tu flujo de trabajo para enviar tareas a una combinación 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`: ejecutar este trabajo en un ejecutor autohospedado. -
`linux`: usar solo un ejecutor basado en Linux. -
`ARM64`: usar solo un ejecutor basado en hardware ARM64.
Para crear ejecutores autohospedados individuales sin las etiquetas predeterminadas, es necesario pasar la marca --no-default-labels al crear el ejecutor. El controlador del ejecutor de acciones no admite varias etiquetas.
Utilizar etiquetas personalizadas para enrutar tareas
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 tiene un trabajo que requiere un tipo específico de hardware de gráficos, puede 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`: ejecutar este trabajo en un ejecutor autohospedado. -
`linux`: usar solo un ejecutor basado en Linux. -
`x64`: usar solo un ejecutor basado en hardware x64. -
`gpu`: esta etiqueta personalizada se asignó manualmente a los ejecutores autohospedados con hardware de GPU instalado.
Estas etiquetas operan de manera acumulativa, así que un ejecutor auto-hospedado deberá tener las cuatro etiquetas para ser elegible para procesar el trabajo.
Uso de grupos para enrutar trabajos
En este ejemplo, se han agregado ejecutores de Ubuntu a un grupo denominado ubuntu-runners. La clave runs-on envía el trabajo a cualquier ejecutor disponible del grupo ubuntu-runners:
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
Uso de etiquetas y grupos para enrutar trabajos
Al combinar grupos y etiquetas, el ejecutor debe cumplir ambos requisitos para poder ejecutar el trabajo.
En este ejemplo, un grupo de ejecutores denominado ubuntu-runners se rellena con ejecutores de Ubuntu, a los que también se ha asignado la etiqueta ubuntu-24.04-16core. La clave runs-on combina group y labels para que el trabajo se enrute a cualquier ejecutor disponible dentro del grupo que también tenga una etiqueta coincidente:
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
labels: ubuntu-24.04-16core
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v