Skip to main content

Getting started with self-hosted runners for your enterprise

You can configure a runner machine for your enterprise so your developers can start automating workflows with GitHub Actions.

Who can use this feature

Enterprise owners can configure policies for GitHub Actions and add self-hosted runners to the enterprise.

About self-hosted runners for GitHub Actions

GitHub Actions allows members of your enterprise to improve productivity by automating every phase of the software development workflow. For more information, see "About GitHub Actions for enterprises."

With GitHub Actions, developers can write and combine individual tasks called actions to create custom workflows. To enable GitHub Actions for your enterprise, you must host at least one machine to execute jobs. This machine is called a self-hosted runner. Los ejecutores autohospedados pueden ser físicos, virtuales, en un contenedor, locales o en una nube. La máquina de tu ejecutor se conecta aGitHub AE utilizando la aplicación para ejecutores auto-hospedados de GitHub Actions. Self-hosted runners can run Linux, Windows, or macOS. For more information, see "About self-hosted runners."

This guide shows you how to apply a centralized management approach to self-hosted runners for GitHub Actions in your enterprise. In the guide, you'll complete the following tasks.

  1. Configure a limited policy to restrict the actions that can run within your enterprise
  2. Deploy a self-hosted runner for your enterprise
  3. Create a group to manage access to the runners available to your enterprise
  4. Optionally, further restrict the repositories that can use the runner
  5. Optionally, build custom tooling to automatically scale your self-hosted runners

You'll also find additional information about how to monitor and secure your self-hosted runners, how to access actions from GitHub.com, and how to customize the software on your runner machines.

After you finish the guide, members of your enterprise will be able to run workflow jobs from GitHub Actions on a self-hosted runner machine.

Prerequisites

1. Configure policies for GitHub Actions

First, enable GitHub Actions for all organizations, and configure a policy to restrict the actions that can run within your enterprise on GitHub AE. Optionally, organization owners can further restrict these policies for each organization.

  1. En la esquina superior derecha de GitHub AE, haga clic en la foto de perfil y luego en Configuración de empresa. "Configuración de empresa" en el menú desplegable de la foto de perfil de GitHub AE

  2. En la barra lateral de la empresa, haz clic en Directivas. Pestaña Directivas en la barra lateral de la cuenta de empresa

  3. En " Directivas", haz clic en Acciones.

  4. Under "Policies", select Enable for all organizations.

    Screenshot of "Enable for all organizations" policy for GitHub Actions

  5. Select Permitir seleccionar acciones and Allow actions created by GitHub to allow local actions, and actions created by GitHub.

    Screenshot of "Allow select actions" and "Allow actions created by GitHub" for GitHub Actions

  6. Click Save.

You can configure additional policies to restrict the actions available to enterprise members. For more information, see "Enforcing policies for GitHub Actions in your enterprise."

2. Deploy the self-hosted runner for your enterprise

Next, add a self-hosted runner to your enterprise. GitHub AE will guide you through installation of the necessary software on the runner machine. After you deploy the runner, you can verify connectivity between the runner machine and your enterprise.

Adding the self-hosted runner

  1. En la esquina superior derecha de GitHub AE, haga clic en la foto de perfil y luego en Configuración de empresa. "Configuración de empresa" en el menú desplegable de la foto de perfil de GitHub AE

  2. En la barra lateral de la empresa, haz clic en Directivas. Pestaña Directivas en la barra lateral de la cuenta de empresa

  3. En " Directivas", haz clic en Acciones.

  4. Haz clic en la pestaña Ejecutores.

  5. Click New runner.

  6. La imagen y arquitectura de tu sistema operativo para tu máquina del ejecutor auto-hospedado.

  7. Verás instrucciones que te mostrarán cómo descargar la aplicación del ejecutor e instalarla en tu máquina de ejecutor autoalojado.

    Abre un shell en tu máquina de ejecutor autoalojado y ejecuta cada comando del shell en el orden que se muestra.

    Nota: En Windows, si quiere instalar la aplicación de ejecutor autohospedado como un servicio, tendrá que abrir un shell con privilegios de administrador. También se recomienda usar C:\actions-runner como directorio para la aplicación del ejecuto autohospedado de modo que las cuentas del sistema de Windows puedan acceder al directorio del ejecutor.

    Las instrucciones te guían para completar estas tareas:

    • Descargar y extraer la aplicación de ejecutor autoalojado.
    • Ejecutar el script config para configurar la aplicación de ejecutor autohospedado y registrarla con GitHub Actions. El script config necesita la URL de destino y un token generado automáticamente de duración limitada para autenticar la solicitud.
    • Ejecutar la aplicación del ejecutor autoalojado para conectar la máquina a las GitHub Actions.

Revisar que tu ejecutor auto-hospedado se haya agregado exitosamente

Después de completar estos pasos para agregar un ejecutor autohospedado, este ejecutor y su estado ahora se muestran en "Self-hosted runners" (Ejecutores autohospedados).

La aplicación del ejecutor autoalojado debe estar activa para que el ejecutor acepte trabajos. Cuando la aplicación del ejecutor esté conectada a GitHub AE y esté lista para recibir trabajos, verá el siguiente mensaje en el terminal de la máquina.

√ Connected to GitHub

2019-10-24 05:45:56Z: Listening for Jobs

3. Manage access to the self-hosted runner using a group

You can create a runner group to manage access to the runner that you added to your enterprise. You'll use the group to choose which organizations can execute jobs from GitHub Actions on the runner.

GitHub AE adds all new runners to a group. Runners can be in one group at a time. By default, GitHub AE adds new runners to the "Default" group.

  1. En la esquina superior derecha de GitHub AE, haga clic en la foto de perfil y luego en Configuración de empresa. "Configuración de empresa" en el menú desplegable de la foto de perfil de GitHub AE
  2. En la barra lateral de la empresa, haz clic en Directivas. Pestaña Directivas en la barra lateral de la cuenta de empresa
  3. En " Directivas", haz clic en Acciones.
  4. Haga clic en la pestaña Runner groups.
  5. Click New runner group.
  6. Under "Group name", type a name for your runner group.
  7. To choose a policy for organization access, under "Organization access", select the Organization access drop-down, and click Selected organizations.
  8. To the right of the drop-down with the organization access policy, click .
  9. Select the organizations you'd like to grant access to the runner group.
  10. Click Create group to create the group and apply the policy.
  11. Click the "Runners" tab.
  12. In the list of runners, click the runner that you deployed in the previous section.
  13. Click Edit.
  14. Click Runner groups .
  15. In the list of runner groups, click the name of the group that you previously created.
  16. Click Save to move the runner to the group.

You've now deployed a self-hosted runner that can run jobs from GitHub Actions within the organizations that you specified.

4. Further restrict access to the self-hosted runner

Optionally, organization owners can further restrict the access policy of the runner group that you created. For example, an organization owner could allow only certain repositories in the organization to use the runner group.

For more information, see "Managing access to self-hosted runners using groups."

5. Automatically scale your self-hosted runners

Optionally, you can build custom tooling to automatically scale the self-hosted runners for your enterprise. For example, your tooling can respond to webhook events from your enterprise to automatically scale a cluster of runner machines. For more information, see "Autoscaling with self-hosted runners."

Next steps

Further reading