Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Entornos virtuales para los ejecutores alojados en GitHub

GitHub ofrece máquinas virtuales alojadas para ejecutar flujos de trabajo. La máquina virtual contiene un entorno de herramientas, paquetes y configuraciones disponibles para que GitHub Actions los utilice.

GitHub Actions se encuentra disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, GitHub Enterprise Cloud, y GitHub One. GitHub Actions no está disponible para repositorios privados que pertenezcan a cuentas que utilicen planes tradicionales por repositorio. Para obtener más información, consulta la sección "Productos de GitHub".

En este artículo

Acerca de ejecutores alojados en GitHub

Un ejecutor alojado en GitHub es una máquina virtual alojada por GitHub con la aplicación del ejecutor GitHub Actions instalada. GitHub ofrece ejecutores con sistemas operativos Linux, Windows y macOS.

Cuando usas un ejecutor alojado en GitHub, se contemplan el mantenimiento de la máquina y las actualizaciones. Puedes ejecutar flujos de trabajo directamente en la máquina virtual o en un contenedor Docker.

Puedes especificar el tipo de ejecutor para cada puesto en un flujo de trabajo. Cada puesto en un flujo de trabajo se ejecuta en una instancia nueva de la máquina virtual. Todos los pasos del trabajo se ejecutan en la misma instancia de la máquina virtual, lo que permite que las acciones de ese trabajo compartan información usando el sistema de archivos.

La aplicación ejecutora de GitHub Actions es de código abierto. Puedes contribuir y emitir informes de problemas en el repositorio runner.

Hosts en la nube para ejecutores alojados en GitHub

GitHub aloja ejecutores de Linux y Windows en máquinas virtuales Standard_DS2_v2 en Microsoft Azure con la aplicación del ejecutor de GitHub Actions instalada. La aplicación del ejecutor alojada en GitHub es una bifurcación del agente de Azure Pipelines. Los paquetes ICMP entrantes están bloqueados para todas las máquinas virtuales de Azure, por lo tanto, es posible que los comandos ping o traceroute no funcionen. Para obtener más información acerca de los recursos de la máquina Standard_DS2_v2, consulta "Dv2 y DSv2-series"en la documentación de Microsoft Azure.

GitHub utiliza MacStadium para alojar a los ejecutores de macOS.

Privilegios administrativos de los ejecutores alojados en GitHub

Las máquinas virtuales Linux y macPS se ejecutan sin la contraseña sudo. Cuando necesitas ejecutar comandos o instalar herramientas que requieren más privilegios que el usuario actual, puedes usar sudo sin la necesidad de brindar una contraseña. Para obtener más información, consulta "Manual de sudo."

Las máquinas virtuales de Windows están configuradas para ejecutarse como administradores con el control de cuentas de usuario (UAC) inhabilitado. Para obtener más información, consulta "Cómo funciona el control de cuentas de usuario" en la documentación de Windows.

Ejecutores y recursos de hardware compatibles

Cada máquina virtual tiene los mismos recursos de hardware disponibles.

  • CPU de 2 núcleos
  • 7 GB de memoria RAM
  • 14 GB de espacio en el disco SSD
Entorno virtualEtiqueta de flujo de trabajo YAML
Windows Server 2019windows-latest o windows-2019
Ubuntu 18.04ubuntu-latest o ubuntu-18.04
Ubuntu 16.04ubuntu-16.04
macOS Catalina 10.15macos-latest or macos-10.15

Para obtener una lista de software, herramientas y paquetes compatibles con cada ejecutor, consulta "Software instalado en ejecutores alojados en GitHub".

Puedes ver las bitácoras para una ejecución de flujo de trabajo para ver el ambiente del ejecutor exacto que se utilizó para un job, así como un enlace a las herramientas preinstaladas que estaban en dicho ejecutor. Para obtener más información, consulta la sección "Administrar la ejecución de un flujo de trabajo".

Direcciones IP de ejecutores alojados en GitHub

Nota: Si usas una lista de direcciones IP permitidas para tu cuenta de organización o de empresa GitHub, no puedes usar ejecutores alojados en GitHub y, en su lugar, debes usar ejecutores autoalojados. Para obtener más información, consulta "Acerca de los ejecutores autoalojados."

Los ejecutores de Windows y Ubuntu se alojan en Azure y tienen los mismos rangos de direcciones IP que los centros de datos de Azure. Actualmente, todos los ejecutores elojados en GitHub de Windows y Ubuntu están en las siguientes regiones de Azure:

  • Este de EE. UU. (eastus)
  • Este de EE. UU. 2 (eastus2)
  • Oeste de EE. UU. 2 (westus2)
  • Centro de EE. UU. (centralus)
  • Centro sur de EE. UU. (southcentralus)

Microsoft actualiza los rangos de dirección IP de Azure semanalmente en un archivo JSON que puedes descargar desde los rangos de IP de Azure y el sitio web de Etiquetas de servicio - Nube pública. Puedes usar este rango de direcciones IP si requieres una lista de permisos para impedir el acceso no autorizado a tus recursos internos.

El archivo JSON contiene una matriz denominada values (valores). Dentro de esa matriz, puedes encontrar las direcciones IP admitidas en un objeto con un name e Id de la región de Azure, por ejemplo, "AzureCloud. eastus2".

Puedes buscar los rangos de direcciones IP compatibles en el objeto "addressPrefixes". Este es un ejemplo condensado del archivo JSON.

{
  "changeNumber": 84,
  "cloud": "Public",
  "values": [
    {
      "name": "AzureCloud.eastus2",
      "id": "AzureCloud.eastus2",
      "properties": {
        "changeNumber": 33,
        "region": "eastus2",
        "platform": "Azure",
        "systemService": "",
        "addressPrefixes": [
          "13.68.0.0/17",
          "13.77.64.0/18",
          "13.104.147.0/25",
          ...
        ]
      }
    }
  ]
}

Sistemas de archivos en ejecutores alojados en GitHub

GitHub ejecuta acciones y comandos de shell en directorios específicos en la máquina virtual. Las rutas de archivo en las máquinas virtuales no son estáticas. Usa las variables de entorno que proporciona GitHub para construir rutas de archivo para los directorios home, workspace y workflow.

DirectorioVariable de entornoDescripción
hogarHOMEContiene datos relacionados con el usuario. Por ejemplo, este directorio podría contener credenciales de un intento de inicio de sesión.
workspaceGITHUB_WORKSPACELas acciones y los comandos del shell se ejecutan en este directorio. Una acción puede modificar los contenidos de este directorio, al que pueden tener acceso las acciones posteriores.
workflow/event.jsonGITHUB_EVENT_PATHLa carga POST del evento de webhook que activó el flujo de trabajo. GitHub reescribe esto cada vez que se ejecuta una acción para aislar el contenido del archivo entre acciones.

Para obtener una lista de las variables de entorno que crea GitHub para cada flujo de trabajo, consulta "Usar variables de entorno".

Sistema de archivos del contenedor Docker

Las acciones que se ejecutan en contenedores Docker tienen directorios estáticos en la ruta /github. Sin embargo, te recomendamos encarecidamente que uses las variables de entorno predeterminadas para construir rutas de archivos en contenedores de Docker.

GitHub se reserva el prefijo de ruta /github y crea tres directorios para acciones.

  • /github/home
  • /github/workspace - Nota:GitHub Actions debe ejecutarse por el usuario predeterminado (root) de Docker. Asegúrate de que tu Dockerfile no configure la instrucción de USER, de lo contrario, no podrás acceder a GITHUB_WORKSPACE.
  • /github/workflow

Leer más

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos