Skip to main content

Running jobs on larger runners

You can speed up your workflows by configuring them to run on ejecutor más grandes.

¿Quién puede utilizar esta característica?

Los Ejecutor más grande solo están disponibles para organizaciones y empresas que usan los planes GitHub Team o GitHub Enterprise Cloud.

Platform navigation

Running jobs on your runner

Una vez definido el tipo de ejecutor, puedes actualizar los archivos YAML del flujo de trabajo para enviar trabajos a las instancias de ejecutor recién creadas para su procesamiento. Puedes usar grupos de ejecutores o etiquetas para definir dónde se ejecutan los trabajos.

Nota:

A los Ejecutor más grande se le asigna automáticamente una etiqueta predeterminada que corresponde al nombre del ejecutor. No puedes agregar etiquetas personalizadas a ejecutor más grandes, pero puedes usar las etiquetas predeterminadas o el grupo del ejecutor para enviar trabajos a tipos específicos de ejecutores.

Solo las cuentas de propietario o administrador pueden ver la configuración del ejecutor. Los usuarios no administrativos pueden ponerse en contacto con el propietario de la organización para averiguar qué ejecutores están habilitados. El propietario de la organización puede crear ejecutores y grupos de ejecutores, así como configurar permisos para especificar los repositorios que pueden acceder a un grupo de ejecutores. Para más información, consulta Managing larger runners.

Una vez definido el tipo de ejecutor, puedes actualizar los archivos YAML del flujo de trabajo para enviar trabajos a las instancias de ejecutor recién creadas para su procesamiento. Puedes usar grupos de ejecutores o etiquetas para definir dónde se ejecutan los trabajos.

Nota:

A los Ejecutor más grande se le asigna automáticamente una etiqueta predeterminada que corresponde al nombre del ejecutor. No puedes agregar etiquetas personalizadas a ejecutor más grandes, pero puedes usar las etiquetas predeterminadas o el grupo del ejecutor para enviar trabajos a tipos específicos de ejecutores.

Solo las cuentas de propietario o administrador pueden ver la configuración del ejecutor. Los usuarios no administrativos pueden ponerse en contacto con el propietario de la organización para averiguar qué ejecutores están habilitados. El propietario de la organización puede crear ejecutores y grupos de ejecutores, así como configurar permisos para especificar los repositorios que pueden acceder a un grupo de ejecutores. Para más información, consulta Managing larger runners.

Once your runner type has been defined, you can update your workflow YAML files to send jobs to runner instances for processing. To run jobs on macOS ejecutor más grandes, update the runs-on key in your workflow YAML files to use one of the GitHub-defined labels for macOS runners. For more information, see Available macOS ejecutor más grandes.

Available macOS ejecutor más grandes

Use the labels in the table below to run your workflows on the corresponding macOS ejecutor más grande.

Tamaño del ejecutorArquitecturaProcesador (CPU)Memoria (RAM)Almacenamiento (SSD)Etiqueta de flujo de trabajo
GrandeIntel1230 GB14 GBmacos-latest-large, macos-13-large, macos-14-large [más reciente], macos-15-large [versión preliminar pública]
XGrandearm64 (M1)6 (+ 8 aceleraciones de hardware de GPU)14 GB14 GBmacos-latest-xlarge, macos-13-xlarge, macos-14-xlarge [más reciente], macos-15-xlarge [versión preliminar pública]

Nota:

For macOS ejecutor más grandes, the -latest runner label uses the macOS 12 runner image. For macOS Xlarge, the -latest runner label uses the macOS 13 runner image

Viewing available runners for a repository

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. Review the list of available runners for the repository.

  5. 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 y los usuarios con el permiso "Manage organization runners and runner groups" 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 Managing larger runners y Adding self-hosted runners. Para obtener más información sobre los roles de organización personalizados, consulta Acerca de los roles personalizados de organización.

Using groups to control where jobs are run

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

Using groups to control where jobs are run

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

Using labels to control where jobs are run

Puedes pasar implícitamente una etiqueta a la clave runs-on mediante la sintaxis runs-on: LABEL. Como alternativa, puedes usar la clave labels, como se muestra en el ejemplo siguiente.

In this example, the runs-on key sends the job to any available runner that has been assigned the ubuntu-20.04-16core label:

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      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

Cualquier persona con acceso de escritura a un repositorio habilitado para Acciones puede averiguar las etiquetas de los ejecutores que están disponibles en ese repositorio. Consulta Running jobs on larger runners.

Using labels to control where jobs are run

Puedes pasar implícitamente una etiqueta a la clave runs-on mediante la sintaxis runs-on: LABEL. Como alternativa, puedes usar la clave labels, como se muestra en el ejemplo siguiente.

In this example, the runs-on key sends the job to any available runner that has been assigned the windows-2022-16core label:

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      labels: windows-2022-16core
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Cualquier persona con acceso de escritura a un repositorio habilitado para Acciones puede averiguar las etiquetas de los ejecutores que están disponibles en ese repositorio. Consulta Running jobs on larger runners.

Targeting macOS ejecutor más grandes in a workflow

To run your workflows on macOS ejecutor más grandes, set the value of the runs-on key to a label associated with a macOS ejecutor más grande. For a list of macOS ejecutor más grande labels, see Available macOS ejecutor más grandes.

In this example, the workflow uses a label that is associated with macOS XL runners. The runs-on key sends the job to any available runner with a matching label:

name: learn-github-actions-testing
on: [push]
jobs:
  build:
    runs-on: macos-13-xlarge
    steps:
      - uses: actions/checkout@v4
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test

Using labels and groups to control where jobs are run

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

Uso de nombres únicos para grupos de ejecutores

GitHub Actions requiere que los nombres del grupo de ejecutores sean únicos a nivel de organización. Esto significa que una organización ya no podrá crear un grupo de ejecutores con el mismo nombre que uno de la empresa. Además, los usuarios verán un banner de advertencia en cualquier grupo de ejecutores que comparta el mismo nombre que un grupo de la empresa, que sugiere que se debe cambiar el nombre del grupo de la organización.

Para evitar ambigüedad, se producirá un error en un flujo de trabajo si hay grupos de ejecutores duplicados en la organización y en la empresa. Para solucionarlo, puedes cambiar el nombre de uno de los grupos de ejecutores de la organización o de la empresa, o bien actualizar el archivo de flujo de trabajo para agregar un prefijo al nombre del grupo de ejecutores:

  • org/ o organization/
  • ent/ o enterprise/

Ejemplo: Uso de prefijos para diferenciar grupos de ejecutores

Por ejemplo, si tienes un grupo de ejecutores denominado my-group en la organización y otro denominado my-group en la empresa, puedes actualizar el archivo de flujo de trabajo para usar org/my-group o ent/my-group para diferenciar entre los dos.

Usar org/:

runs-on:
  group: org/my-group
  labels: [ self-hosted, label-1 ]

Usar ent/:

runs-on:
  group: ent/my-group
  labels: [ self-hosted, label-1 ]

Using labels and groups to control where jobs are run

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

Uso de nombres únicos para grupos de ejecutores

GitHub Actions requiere que los nombres del grupo de ejecutores sean únicos a nivel de organización. Esto significa que una organización ya no podrá crear un grupo de ejecutores con el mismo nombre que uno de la empresa. Además, los usuarios verán un banner de advertencia en cualquier grupo de ejecutores que comparta el mismo nombre que un grupo de la empresa, que sugiere que se debe cambiar el nombre del grupo de la organización.

Para evitar ambigüedad, se producirá un error en un flujo de trabajo si hay grupos de ejecutores duplicados en la organización y en la empresa. Para solucionarlo, puedes cambiar el nombre de uno de los grupos de ejecutores de la organización o de la empresa, o bien actualizar el archivo de flujo de trabajo para agregar un prefijo al nombre del grupo de ejecutores:

  • org/ o organization/
  • ent/ o enterprise/

Ejemplo: Uso de prefijos para diferenciar grupos de ejecutores

Por ejemplo, si tienes un grupo de ejecutores denominado my-group en la organización y otro denominado my-group en la empresa, puedes actualizar el archivo de flujo de trabajo para usar org/my-group o ent/my-group para diferenciar entre los dos.

Usar org/:

runs-on:
  group: org/my-group
  labels: [ self-hosted, label-1 ]

Usar ent/:

runs-on:
  group: ent/my-group
  labels: [ self-hosted, label-1 ]

Troubleshooting ejecutor más grandes

Si observas que los trabajos que se dirigen a tus ejecutor más grandes se retrasan o no se ejecutan, las causas pueden ser varias.

  • Configuración de simultaneidad: es posible que hayas alcanzado el límite máximo de simultaneidad. Si quieres permitir que más trabajos se ejecuten en paralelo, puedes actualizar la configuración de escalado automático a un número mayor. Para más información, consulta Managing larger runners.
  • Permisos de repositorio: asegúrate de tener habilitados los permisos de repositorio adecuados para los ejecutor más grandes. De forma predeterminada, los ejecutores de empresa no están disponibles a nivel de repositorio y un administrador de la organización debe habilitarlos manualmente. Para más información, consulta Managing larger runners.
  • Información de facturación: debes tener una tarjeta de crédito válida en el archivo para poder usar ejecutor más grandes. Después de agregar una tarjeta de crédito a tu cuenta, puede tardar hasta 10 minutos en permitirse el uso de los ejecutor más grandes. Para más información, consulta Administración de la información de facturación y pago.
  • Límite de gasto: el límite de gasto de GitHub Actions debe establecerse en un valor mayor que cero. Para más información, consulta Uso de presupuestos para controlar el gasto en productos medidos.
  • Directiva de uso justo: GitHub tiene una directiva de uso justo que comienza a limitar los trabajos en función de varios factores, como el número de trabajos que se ejecutan o cuántos trabajos se ejecutan en la totalidad de GitHub Actions.
  • Cola de trabajos para asignar tiempo: la cola de trabajos para asignar tiempo hace referencia al tiempo entre una solicitud de trabajo y GitHub asignando una máquina virtual para ejecutar el trabajo. Los ejecutores hospedados estándar GitHub que usan etiquetas de flujo de trabajo YAML prescritas (como ubuntu-latest) siempre están en un estado “activo”. Con los ejecutores más grandes, es posible que una máquina activa no esté lista para recoger un trabajo en la primera solicitud, ya que los grupos de estas máquinas son más pequeños. Como resultado, es posible que GitHub tenga que crear una nueva máquina virtual, lo que aumenta la cola para asignar tiempo. Una vez que un ejecutor está en uso, las máquinas virtuales son fácilmente para las ejecuciones de flujo de trabajo posteriores, lo que reduce la cola para asignar tiempo para futuras ejecuciones de flujo de trabajo en las próximas 24 horas.

Si observas que los trabajos que se dirigen a tus ejecutor más grandes se retrasan o no se ejecutan, las causas pueden ser varias.

  • Configuración de simultaneidad: es posible que hayas alcanzado el límite máximo de simultaneidad. Si quieres permitir que más trabajos se ejecuten en paralelo, puedes actualizar la configuración de escalado automático a un número mayor. Para más información, consulta Managing larger runners.
  • Permisos de repositorio: asegúrate de tener habilitados los permisos de repositorio adecuados para los ejecutor más grandes. De forma predeterminada, los ejecutores de empresa no están disponibles a nivel de repositorio y un administrador de la organización debe habilitarlos manualmente. Para más información, consulta Managing larger runners.
  • Información de facturación: debes tener una tarjeta de crédito válida en el archivo para poder usar ejecutor más grandes. Después de agregar una tarjeta de crédito a tu cuenta, puede tardar hasta 10 minutos en permitirse el uso de los ejecutor más grandes. Para más información, consulta Administración de la información de facturación y pago.
  • Límite de gasto: el límite de gasto de GitHub Actions debe establecerse en un valor mayor que cero. Para más información, consulta Uso de presupuestos para controlar el gasto en productos medidos.
  • Directiva de uso justo: GitHub tiene una directiva de uso justo que comienza a limitar los trabajos en función de varios factores, como el número de trabajos que se ejecutan o cuántos trabajos se ejecutan en la totalidad de GitHub Actions.
  • Cola de trabajos para asignar tiempo: la cola de trabajos para asignar tiempo hace referencia al tiempo entre una solicitud de trabajo y GitHub asignando una máquina virtual para ejecutar el trabajo. Los ejecutores hospedados estándar GitHub que usan etiquetas de flujo de trabajo YAML prescritas (como ubuntu-latest) siempre están en un estado “activo”. Con los ejecutores más grandes, es posible que una máquina activa no esté lista para recoger un trabajo en la primera solicitud, ya que los grupos de estas máquinas son más pequeños. Como resultado, es posible que GitHub tenga que crear una nueva máquina virtual, lo que aumenta la cola para asignar tiempo. Una vez que un ejecutor está en uso, las máquinas virtuales son fácilmente para las ejecuciones de flujo de trabajo posteriores, lo que reduce la cola para asignar tiempo para futuras ejecuciones de flujo de trabajo en las próximas 24 horas.

Because macOS arm64 does not support Node 12, macOS ejecutor más grandes automatically use Node 16 to execute any JavaScript action written for Node 12. Some community actions may not be compatible with Node 16. If you use an action that requires a different Node version, you may need to manually install a specific version at runtime.

Nota:

ARM-powered runners are currently in versión preliminar pública and are subject to change.