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 ejecutor | Arquitectura | Procesador (CPU) | Memoria (RAM) | Almacenamiento (SSD) | Etiqueta de flujo de trabajo |
---|---|---|---|---|---|
Grande | Intel | 12 | 30 GB | 14 GB | macos-latest-large , macos-13-large , macos-14-large [más reciente], macos-15-large [versión preliminar pública] |
XGrande | arm64 (M1) | 6 (+ 8 aceleraciones de hardware de GPU) | 14 GB | 14 GB | macos-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.
-
En GitHub, navegue hasta la página principal del repositorio.
-
En el nombre del repositorio, haz clic en Acciones.
-
En la barra lateral izquierda, en la sección "Administración", haz clic en Ejecutores.
-
Review the list of available runners for the repository.
-
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/
oorganization/
ent/
oenterprise/
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/
oorganization/
ent/
oenterprise/
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.