Skip to main content

Uso de ejecutores autohospedados en un flujo de trabajo

Para usar los ejecutores autohospedados en un flujo de trabajo, puedes usar etiquetas o grupos a fin de especificar el ejecutor para un trabajo.

Visualización de ejecutores disponibles para un repositorio

Si tienes acceso repo: write a un repositorio, puedes ver una lista de los ejecutores disponibles para el repositorio.

  1. En GitHub, navegue hasta la página principal del repositorio.

  2. En el nombre del repositorio, haz clic en Acciones.

    Captura de pantalla de las pestañas del repositorio "github/docs". La pestaña "Proyectos" aparece resaltada con un contorno naranja.

  3. En la barra lateral izquierda, en la sección "Administración", haz clic en Ejecutores.

  4. Haz clic en la pestaña Autohospedado en la parte superior de la lista de ejecutores.

  5. Revisa la lista de ejecutores autohospedados disponibles para el repositorio. Esta lista incluye ejecutores autohospedados y conjuntos de escalado de ejecutores creados con Actions Runner Controller. Para más información, consulta Acerca de Actions Runner Controller.

  6. Opcionalmente, para copiar la etiqueta de un ejecutor para usarla en un flujo de trabajo, haz clic en a la derecha del ejecutor y, a continuación, haz clic en Copiar etiqueta.

Nota:

Los propietarios de empresa y de la organización pueden crear ejecutores desde esta página. Para crear un nuevo ejecutor, haz clic en Nuevo ejecutor en la parte superior derecha de la lista de ejecutores para agregar ejecutores al repositorio.

Para obtener más información, consulta Administración de ejecutores más grandes y Agrega ejecutores auto-hospedados.

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 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 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