Skip to main content

Acerca de las precompilaciones de los codespaces

Codespaces prebuilds help to speed up the creation of new codespaces for large or complex repositories.

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

Prebuilding your codespaces allows you to be more productive and access your codespace faster, particularly if your repository is large or complex and new codespaces currently take more than 2 minutes to start. 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. If a prebuild is still being created, you will see the " Prebuild in progress" label. 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

By default, a GitHub Actions workflow is triggered every time you create or update a prebuild template, or push to a prebuild-enabled branch. As with other workflows, while prebuild workflows are running they will either consume some of the Actions minutes included with your account, if you have any, or they will incur charges for Actions minutes. For more information about pricing for Actions minutes, see "About billing for GitHub Actions."

Alongside GitHub Actions minutes, you will also be billed for the storage of prebuild templates associated with each prebuild configuration for a given repository and region. Storage of prebuild templates is billed at the same rate as storage of codespaces. For more information, see "Calculating storage usage."

To reduce consumption of Actions minutes, you can set a prebuild template to be updated only when you make a change to your dev container configuration files, or only on a custom schedule. You can also manage your storage usage by adjusting the number of template versions to be retained for your prebuild configurations. Para obtener más información, consulta la sección "Configurar las precompilaciones".

If you are an organization owner, you can track usage of prebuild workflows and storage by downloading a GitHub Actions usage report for your organization. You can identify workflow runs for prebuilds by filtering the CSV output to only include the workflow called "Create Codespaces Prebuilds." 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.