Nota:
Actualmente los ejecutores hospedados por GitHub no se admiten en GitHub Enterprise Server.
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:
self-hosted
: etiqueta predeterminada que se aplica a los ejecutores autohospedados.linux
,windows
omacOS
: se aplica según el sistema operativo.x64
,ARM
oARM64
: se aplica en función de la arquitectura de 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
: 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 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 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@v4
- 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-20.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-20.04-16core
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v