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,windowsomacOS: se aplica según el sistema operativo.x64,ARMoARM64: 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@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-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@v5 - uses: actions/setup-node@v4 with: node-version: '14' - run: npm install -g bats - run: bats -v