Skip to main content
Publicamos actualizaciones para la documentación con frecuencia y es posible que aún se esté traduciendo esta página. Para obtener la información más reciente, consulta la documentación en inglés.

Configuración de precompilaciones

Puedes configurar tu proyecto para precompilar un codespace automáticamente cada vez que insertas un cambio en el repositorio.

Quién puede usar esta característica

People with admin access to a repository can configure prebuilds for the repository.

Puedes configurar una configuración de precompilación para la combinación de una rama específica del repositorio con un archivo de configuración de contenedor de desarrollo específico.

Las ramas creadas a partir de una rama primaria habilitada previamente para la compilación normalmente también obtendrán precompilaciones para la misma configuración de contenedor de desarrollo. El motivo es que las precompilaciones para ramas secundarias que usan la misma configuración de contenedor de desarrollo que la rama primaria es, en su mayor parte, idéntica, por lo que los desarrolladores también se pueden beneficiar de tiempos de creación de codespaces más rápidos en esas ramas. Para más información, vea "Introducción a los contenedores de desarrollo".

Normalmente, al configurar precompilaciones para una rama, estarán disponibles para varios tipos de equipo. Pero si el repositorio es mayor de 32 GB, las precompilaciones no estarán disponibles para los tipos de máquina de 2 y 4 núcleos, ya que el almacenamiento que proporcionan está limitado a 32 GB.

Requisitos previos

Los precompilaciones se crean con GitHub Actions. Como resultado, GitHub Actions debe estar habilitado para el repositorio para el que vas a configurar las precompilaciones. Para más información, vea "Administración de la configuración de GitHub Actions para un repositorio".

Configuración de precompilaciones

  1. En GitHub.com, navega a la página principal del repositorio. 1. Debajo del nombre del repositorio, haz clic en Configuración. Botón de configuración del repositorio

  2. En la sección "Código y automatización" de la barra lateral, haga clic en Codespaces .

  3. En la sección "Configuración de la precompilación" de la página, haz clic en Configurar precompilación.

    Botón "Configurar precompilaciones"

  4. Elige la rama para la que quieras configurar las precompilaciones.

    El menú desplegable de ramas

    Nota: Las ramas creadas a partir de una rama base habilitada previamente para la compilación normalmente también obtendrán precompilaciones para la misma configuración de contenedor de desarrollo. Por ejemplo, si habilita las precompilaciones para un archivo de configuración de contenedor de desarrollo en la rama predeterminada del repositorio, las ramas basadas en la predeterminada también obtendrán precompilaciones en la mayoría de los casos para la misma configuración de contenedor de desarrollo.

  5. Opcionalmente, en el menú desplegable Archivo de configuración que se muestra, elige el archivo de configuración de devcontainer.json que quieres usar para esta plantilla de precompilaciones. Para obtener más información, consulte "Introducción a los contenedores de desarrollo".

    Menú desplegable del archivo de configuración

  6. Elige cómo quieres desencadenar automáticamente las actualizaciones de la precompilación.

    • Todas las inserciones (configuración predeterminada): con esta configuración, las precompilaciones se actualizarán en cada inserción realizada en la rama especificada. Esto garantizará que los codespaces generados a partir de una precompilación siempre contengan la configuración de codespace más reciente, incluidas las dependencias agregadas o actualizadas recientemente.
    • Al cambiar la configuración: con esta opción, las precompilaciones se actualizarán cada vez que se actualicen los archivos de configuración asociados para un repositorio y una rama determinados. Esto garantiza que los cambios en los archivos de configuración del contenedor de desarrollo para el repositorio se usan cuando se genera un codespace a partir de una precompilación. El flujo de trabajo de GitHub Actions que actualiza los precompilaciones se ejecutará con menos frecuencia, por lo que esta opción usará menos minutos de GitHub Actions. Pero esta opción no garantizará que los codespaces siempre incluyan dependencias agregadas o actualizadas recientemente, por lo que es posible que tengan que agregarse o actualizarse manualmente después de crear un codespace.
    • Programado: con esta configuración, podrás actualizar la precompilación en una programación personalizada que definas. Esto puede reducir el consumo de minutos de GitHub Actions; sin embargo, con esta opción, se pueden crear codespaces que no usen los cambios más recientes en la configuración del contenedor de desarrollo.

    Opciones del desencadenador de precompilación

  7. Opcionalmente, selecciona Reducir precompilación disponible para solo regiones específicas para crear precompilaciones solo en regiones especificadas. Selecciona las regiones en las que quieres que estén disponibles las precompilaciones.

    De forma predeterminada, las precompilaciones se crean en todas las regiones disponibles, lo que conlleva cargos de almacenamiento por precompilación.

    Opciones de selección de región

    Notas:

  8. Opcionalmente, en plantilla de precompilación, se establece el número de versiones que se conservarán. Puedes especificar cualquier número entre 1 y 5. El número predeterminado de versiones guardadas es 2, lo que significa que solo se guardan la más reciente y la versión anterior.

    Configuración del historial de precompilaciones

    En función de la configuración del desencadenador de precompilaciones, la precompilación podría cambiar con cada inserción o en cada cambio de configuración del contenedor de desarrollo. Conservar las versiones anteriores de las precompilaciones permite crear una precompilación a partir de una confirmación anterior con una configuración de contenedor de desarrollo diferente a la de la precompilación actual. Esta configuración permite establecer el número de versiones retenidas en un nivel adecuado para tus necesidades.

    Si estableces el número de versiones de precompilaciones para guardar en 1, GitHub Codespaces solo guardará la más reciente y se eliminará la versión anterior cada vez que se actualice la plantilla. Esto significa que no obtendrás un codespace precompilado si vuelves a una configuración de contenedor de desarrollo anterior.

    Hay un costo de almacenamiento asociado a cada versión de precompilación que se conserva. Por ejemplo, si vas a generar precompilaciones en 4 regiones y conservas 2 versiones, se te cobrará por el almacenamiento de hasta 8 precompilaciones. Para más información sobre la facturación, consulta "Acerca de la facturación de GitHub Codespaces".

  9. Opcionalmente, agrega usuarios o equipos a quienes notificar cuando se produzca un error en la ejecución del flujo de trabajo de precompilación de esta configuración. Para empezar, puedes escribir un nombre de usuario, un nombre de equipo o un nombre completo y, luego, hacer clic en ellos cuando aparezcan para agregarlos a la lista. Los usuarios o equipos que agregues recibirán un correo electrónico cuando se produzcan errores de precompilación, con un vínculo a los registros de ejecución del flujo de trabajo para que puedan investigarlo más a fondo.

    Configuración de notificaciones de error de precompilación

  10. Opcionalmente, en la parte inferior de la página, haz clic en Mostrar opciones avanzadas.

    Captura de pantalla de la página de configuración de precompilación, con la opción "Mostrar opciones avanzadas" resaltada

    En la sección "Opciones avanzadas", si seleccionas Deshabilitar optimización de precompilación, los codespaces se crearán sin un precompilado si se ha producido un error en el flujo de trabajo de precompilación más reciente o si se está ejecutando actualmente. Para obtener más información, consulta "Solución de problemas anterior a la compilación".

  11. Haga clic en Crear.

    Si la configuración del contenedor de desarrollo para el repositorio especifica permisos para acceder a otros repositorios, se te mostrará una página de autorización. Para obtener más información sobre cómo se especifica esto en el archivo devcontainer.json, consulta "Administración del acceso a otros repositorios del codespace".

    Haz clic en para ver los detalles de los permisos solicitados.

    Captura de pantalla de la página de autorización para precompilaciones

    Haz clic en Autorizar y continuar para conceder estos permisos para la creación de precompilaciones. Como alternativa, puedes hacer clic en Continuar sin autorizar, pero, si lo haces, es posible que los codespaces creados a partir de las precompilaciones resultantes no funcionen correctamente.

    Nota: También se pedirá que concedan estos permisos a los usuarios que creen codespaces que usan esta precompilación.

Después de crear una configuración de precompilación, esta aparece en la página GitHub Codespaces de la configuración del repositorio. Se pone en cola un flujo de trabajo de GitHub Actions y, después, se ejecuta para crear precompilaciones en las regiones especificadas, en función de la rama y el archivo de configuración de contenedor de desarrollo seleccionados.

Captura de pantalla de la lista de configuraciones de precompilación

Para obtener información sobre cómo editar y eliminar configuraciones de precompilación, consulta "Administración de precompilaciones".

Configurar variables de ambiente

Para permitir que el proceso de precompilación acceda a las variables de entorno necesarias para crear el entorno de desarrollo, puede establecerlas como secretos de repositorio de Codespaces, o bien como secretos de organización de Codespaces. Para más información, vea "Adición de secretos para un repositorio" y "Adición de secretos para una organización".

Los secretos que crees de esta manera serán accesibles para cualquiera que cree un codespace desde este repositorio. Si no quiere este comportamiento, también puede establecer el secreto CODESPACES_PREBUILD_TOKEN. El secreto CODESPACES_PREBUILD_TOKEN solo se usa para la precompilación y su valor no es accesible en los codespaces de los usuarios.

Las precompilaciones no pueden usar ningún secreto de nivel de usuario al compilar el entorno, ya que no están disponibles hasta después de crear el codespace.

Configuración de tareas que requieren mucho tiempo para incluirse en la precompilación

Puede usar los comandos onCreateCommand y updateContentCommand en devcontainer.json para incluir procesos lentos como parte de la creación de la precompilación. Para más información, consulta la documentación de Visual Studio Code "referencia de devcontainer.json".

onCreateCommand solo se ejecuta una vez, cuando se crea la precompilación, mientras que updateContentCommand se ejecuta en la creación de la precompilación y en las actualizaciones de plantilla posteriores a esta. Las compilaciones incrementales se deben incluir en updateContentCommand, ya que representan el origen del proyecto y deben incluirse para cada actualización de precompilación.

Información adicional