Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Solución de problemas de precompilaciones

Puedes usar precompilaciones para acelerar la creación de codespaces. En este artículo se proporcionan los pasos para la solución de problemas comunes con las precompilaciones.

Para obtener más información sobre las precompilaciones de GitHub Codespaces, consulta "Precompilación de codespaces".

¿Quiere comprobar si un codespace se ha creado a partir de una precompilación?

Al crear un codespace, puedes elegir el tipo de la máquina virtual que quieres usar. Si hay disponible un precompilado para el tipo de máquina virtual, " Precompilación lista" se muestra junto a él.

Una lista de los tipos de objeto disponibles.

Si tienes la preferencia del editor de GitHub Codespaces establecida en "Visual Studio Code para la web", en la página "Configuración del codespace" se mostrará el mensaje "Se ha encontrado un codespace precompilado" si se usa una precompilación.

Mensaje "Codespace creado previamente encontrado"

Del mismo modo, si la preferencia del editor es "VS Code", el terminal integrado contendrá el mensaje "Estás en un codespace precompilado definido por la configuración de precompilación para el repositorio" al crear un codespace. Para más información, consulta "Configuración del editor predeterminado para GitHub Codespaces".

Después de crear un codespace, puede comprobar si se ha creado a partir de una precompilación si ejecuta el comando GitHub CLI siguiente en el terminal:

Shell
gh api /user/codespaces/$CODESPACE_NAME --jq .prebuild

Esto devuelve true si el codespace se ha creado mediante una precompilación.

Como alternativa, si GitHub CLI (gh) no está instalado, puede usar el comando siguiente, que devuelve createFromPrebuild si el codespace se ha creado a partir de una precompilación:

Shell
cat /workspaces/.codespaces/shared/environment-variables.json | jq '.ACTION_NAME'

En ocasiones falta la etiqueta "Prebuild Ready" (Listo para precompilación)

Es posible que observe que, en ocasiones, al crear un codespace desde una rama habilitada para la precompilación, la etiqueta " Prebuild Ready" (Listo para precompilación) no se muestra en el cuadro de diálogo para elegir un tipo de máquina. Esto significa que las precompilaciones no están disponibles actualmente.

De forma predeterminada, cada vez que se inserta en una rama habilitada para precompilación, se actualiza la precompilación. Si la inserción implica un cambio en el contenedor de desarrollo, mientras la actualización está en curso, la etiqueta " Precompilación lista" se quita de la lista de tipos de máquina. Durante este tiempo, todavía puede crear codespace sin una precompilación. Si es necesario, puede reducir las ocasiones en las que las precompilaciones no están disponibles para un repositorio estableciendo que la precompilación se actualice solo cuando realice un cambio en los archivos de configuración del contenedor de desarrollo o solo en una programación personalizada. Para obtener más información, consulta "Configuración de precompilaciones".

Si la rama no está habilitada específicamente para las precompilaciones, todavía se puede beneficiar de ellas si se bifurca desde una rama habilitada para la precompilación. Pero si la configuración del contenedor de desarrollo se cambia en la rama, de modo que no sea la mismo que la de la rama base, las precompilaciones ya no estarán disponibles en la rama.

Estos son los aspectos para comprobar si la etiqueta " Prebuild Ready" (Listo para precompilación) no se muestra para una rama determinada:

  • Confirme que existe una configuración de precompilación para esta rama. Si no es administrador del repositorio, tendrá que ponerse en contacto con uno para confirmarlo.
  • Confirme que la configuración de precompilación incluye la región.
  • Compruebe si se ha insertado recientemente un cambio de la configuración del contenedor de desarrollo en la rama habilitada para la precompilación. En caso afirmativo, normalmente tendrás que esperar hasta que se complete el flujo de trabajo de precompilación para esta inserción antes de que los precompilaciones vuelvan a estar disponibles.
  • Si no se han realizado cambios de configuración recientemente, vaya a la pestaña Actions (Acciones) del repositorio, haga clic en Codespaces Prebuilds (Precompilaciones) en la lista de flujos de trabajo y compruebe que las ejecuciones de flujo de trabajo de precomplilación para la rama sean correctas. Si se ha producido un error en las ejecuciones más recientes de un flujo de trabajo y una o varias de estas ejecuciones con errores contenían cambios en la configuración del contenedor de desarrollo, no habrá precompilaciones disponibles para la rama asociada.

No se puede acceder a algunos recursos en codespaces creados mediante una precompilación

Si el archivo de configuración de devcontainer.json de una configuración de precompilación especifica que se requieren permisos para el acceso a otros repositorios, se pedirá al administrador del repositorio que autorice estos permisos cuando cree o actualice la configuración de precompilación. Si el administrador no concede todos los permisos solicitados, existe la posibilidad de que se produzcan problemas en la precompilación y en los codespaces creados a partir de la misma. Esto es cierto incluso si el usuario que crea un codespace basado en esta precompilación concede todos los permisos cuando se le pide que lo haga.

Solución de problemas de ejecuciones de flujo de trabajo con errores para precompilaciones

Aumento del límite de gasto de GitHub Actions

Las precompilaciones se crean y actualizan con GitHub Actions. Se producirá un error en los flujos de trabajo de precompilación si has usado todos los minutos de GitHub Actions y has alcanzado el límite de gasto. Si esto ocurre, puedes aumentar el límite de gasto de GitHub Actions para permitir que se ejecuten los flujos de trabajo. Para obtener más información, consulta "Administración del límite de gasto para GitHub Actions".

Autorización de permisos de acceso

Si se actualiza el archivo de configuración de devcontainer.json de una configuración de precompilación para especificar que se requieren permisos para el acceso a otros repositorios y no se ha solicitado a un administrador de repositorio que autorice estos permisos para la configuración de precompilación, es posible que se produzca un error en el flujo de trabajo de precompilación. Prueba a actualizar la configuración de precompilación sin realizar ningún cambio. Si, al hacer clic en Actualizar, se muestra la página de autorización, comprueba que los permisos solicitados son adecuados y, si es así, autoriza la solicitud. Para obtener más información, consulta "Administración de precompilaciones" y "Administración del acceso a otros repositorios dentro del codespace".

Si se produce un error en la ejecución del flujo de trabajo para una configuración de precompilación, puedes deshabilitar temporalmente la configuración de precompilación mientras investigas. Consulta "Administración del estado" para obtener más información.

Prevención del uso de precompilaciones obsoletas

De forma predeterminada, si se ha producido un error en el flujo de trabajo de precompilación más reciente, se usará una precompilación anterior para la misma combinación de repositorio, rama y archivo de configuración devcontainer.json para crear espacios de código. Este comportamiento se denomina "optimización de precompilación".

Se recomienda mantener habilitada la optimización de precompilación, ya que ayuda a garantizar que los codespaces sigan pudiéndose crear rápidamente si no hay disponible una precompilación actualizada. Aun así, como administrador del repositorio, puedes deshabilitar la optimización de precompilación si tienes problemas porque los codespaces precompilados están detrás del estado actual de la rama. En caso de que deshabilites la optimización de precompilación, los codespaces para la combinación pertinente de repositorio, rama y archivo devcontainer.json se crearán sin una precompilación si el flujo de trabajo de precompilación más reciente ha generado un error o se está ejecutando actualmente.

  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. A la derecha de la configuración de precompilación afectada, selecciona los puntos suspensivos ( ) y haz clic en Editar.

    Captura de pantalla de una lista de precompilaciones, con "Editar" resaltado

  4. Desplázate hasta la parte inferior de la página "Editar configuración" y 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

  5. Si sabes con seguridad que quieres deshabilitar la configuración predeterminada, selecciona Deshabilitar la optimización de precompilación.

    Captura de pantalla de la sección "Opciones avanzadas" y la opción "Deshabilitar la optimización de precompilación"

  6. Para guardar el cambio, haz clic en Actualizar.

Información adicional