Skip to main content

Acerca de las precompilaciones de los codespaces

Las precompilaciones de codespaces te ayudan a acelerar la creación de codespaces nuevos para repositorios grandes o complejos.

Codespaces está disponible para las organizaciones que utilicen GitHub Team o Nube de GitHub Enterprise. Para obtener más información, consulta la sección "Productos de GitHub".

Resumen

El precompilar tus codespaces te permite ser más productivo y acceder a ellos más rápido, particularmente si tu repositorio es grande o complejo y los codespaces nuevos actualmente toman más de 2 minutos en iniciar. Esto es porque cualquier código fuente, extensiones del editor, dependencias de proyecto, comandos y configuraciones ya se han descargado, instalado y aplicado antes de que crees un codespace para tu proyecto. Piensa en la precompilación como una plantilla "lista para utilizarse" para un codespace.

Predeterminadamente, cada que subas cambios a tu repositorio, Codespaces utiliza GitHub Actions para actualizar tus precompilaciones automáticamente.

Cuando las precompilaciones están disponibles para una rama en particular de un repositorio y para tu región, verás la etiqueta " Prebuild ready" en la lista de opciones de tipo de máquina al crear un codespace. Si se está creando una precompilación, verás la etiqueta " Prebuild in progress". Para obtener más información, consulta la sección "Crear un codespace".

La caja de diálogo para elegir un tipo de máquina

Prebuilds are not available if you choose to use a devcontainer.json file from a .devcontainer/SUBDIRECTORY location when you create a codespace. For information about choosing a devcontainer.json file, see "Creating a codespace."

Acerca de la facturación para las precompilaciones de Codespaces

Predeterminadamente, un flujo de trabajo de GitHub Actions se activa cada que creas o actualizas una plantilla de precompilación o cuando la subes a una rama habilitada para precompilación. Así como con otros flujos de trabajo, cuando se están ejecutando los flujos de trabajo de precompilación, estos podrán ya sea consumir algunos de los minutos de las acciones que se inlcuyen en tu cuenta, en caso de que los tengas, o incurrir en cambios para los minutos de las acciones. Para obtener más información sobre los precios para los minutos de las acciones, consulta la sección "Acerca de la facturación para las GitHub Actions".

Junto con los minutos de GitHub Actions, también se te cobrará por el almacenamiento de las plantillas de precompilación asociadas con cada configuración de precompilación para los repositorios y regiones específicos. El almacenamiento de plantillas de precompilación se factura con la misma tasa que el almacenamiento de los codespaces. Para obtener más información, consulta la sección "Calcular el uso de almacenamiento".

Para reducir el consumo de minutos de acciones, puedes configurar una plantilla de precompilaciòn para que se actualice únicamente cuando haces un cambio a los archivos de configuración de tu contenedor dev o solo bajo un itinerario personalizado. También puedes administrar el uso de tu almacenamiento si ajustas la cantidad de versiones de plantillas que se retendrán para tus configuraciones precompiladas. Para obtener más información, consulta la sección "Configurar las precompilaciones".

Si eres un propietario de organización, puedes rastrear el uso de flujos de trabajo precompilados y de almacenamiento si descargas un reporte de uso de GitHub Actions para tu organización. Puedes identificar las ejecuciones de flujo de trabajo para las precompilaciones si filtras la salida den CSV para que solo incluya el flujo de trabajo llamado "Crear precompilaciones de codespaces". Para obtener más información, consulta la sección "Visualizar tu uso de GitHub Actions". Para obtener más detalles sobre los precios de almacenamiento de Codespaces, consulta la sección "Acerca de la facturación para Codespaces".

El utilizar los codespaces creados utilizando precompilaciones se carga en la misma tasa que los codespaces normales.

Acerca de subir cambios a las ramas habilitadas con precompilación

Predeterminadamente, cada subida a una rama que tenga una configuración de precompilación da como resultado una ejecución de flujo de trabajo de acciones administrada por GitHub para actualizar la plantilla de precompilación. El flujo de trabajo de precompilación tiene un límite de concurrencia de una ejecución de flujo de trabajo a la vez para una configuración de precompilación específica, a menos de que se hayan hecho cambios que afecten la configuración del contenedor dev para el repositorio asociado. Para obtener más información, consulta la sección "Introducción a los contenedores dev". Si una ejecución ya está en curso, la ejecución del flujo de trabajo que se puso en cola más recientemente será la siguiente que se ejecute después de que se complete la ejecución actual.

Con la plantilla de precompilación configurada para actualizarse en cada subida, esto significa que si hay subidas muy frecuentes a tu repositorio, las actualizaciones a la plantilla de precompilación ocurrirán por lo menos tan a menudo como se necesite ejecutar el flujo de trabajo de precompilación. Es decir, si la ejecución de tu flujo de trabajo habitualmente toma una hora en completarse, las precompilaciones se crearán para tu repositorio por mucho cada hora, si la ejecución tiene éxito, o más a menudo si fueron subidas que cambiaron la configuración del contenedor dev en la rama.

Pro ejemplo, imaginemos que se realizan 5 subidas, rápidamente una después de la otra, contra una rama que tiene una configuración de precompilación. En esta situación:

  • Una ejecución de flujo de trabajo inició para la primer subida, para actualizar la plantilla de precompilación.

  • Si las 4 subidas restantes no afectan la configuración del contenedor dev, las ejecuciones de flujo de trabajo de estas se ponen en cola en un estado "pendiente".

    Si cualquiera de estas 4 subidas restantes cambian la configuración del contenedor dev, entonces el servicio no la omitirá y ejecutará inmediatamente el flujo de trabajo de creación de la precompilación, actualizándola en consecuencia si tiene éxito.

  • Una vez que se complete la primera ejecución, se cancelarán las ejecuciones de flujo de trabajo para las subidas 2, 3 y 4 y el flujo de trabajo que sea el último en la cola (para la subida 5) se ejecutará y actualizará la plantilla de precompilación.