IDE as a Service con GitHub Codespaces

En el último artículo te conté cómo sacarle partido a Remote Containers, una extensión para Visual Studio Code, que nos permite definir nuestros entornos de desarrollo como código y que estos se ejecuten dentro de un contenedor. Hoy quiero hablarte de GitHub Codespaces, lo cual nos permite ir un paso más allá, ya que no solo no hará falta instalar las herramientas y extensiones en local sino que podrás desarrollar en cualquier parte y desde cualquier dispositivo.

¿Qué es GitHub Codespaces?

Es posible que hayas visto el anuncio de GitHub de que ahora, cada vez estás en un repo y presionas la tecla de punto «.» se abrirá un editor web con el repositorio en cuestión:

Editor web gratuito en GitHub

Sin embargo sobre este no podrás ejecutar ningún terminal ya que simplemente es un editor web sin más. No hay una máquina con computo por detrás que puedas usar en este formato:

El editor web no te permite ejecutar terminales

En algunas ocasiones esto puede ser más que suficiente, pero imagina que necesitas ejecutar un entorno, compilar un proyecto, etcétera pero no tienes a mano un ordenador que cumpla las necesidades (un iPad, una Surface Go, etc.). Por todo ello aparece GitHub Codespaces, que te permite ejecutar el IDE en la nube para trabajar como si estuvieras en local, con el IDE que conoces y la configuración que necesitas. Esta característica sólo está disponible en las cuentas de tipo Team y Enterprise.

Proyecto de ejemplo

Para mostrarte qué pinta tiene Codespaces voy a utilizar el mismo proyecto que usé en el ejemplo con Visual Studio Remote Containers, pero esta vez voy a utilizar una cuenta del tipo GitHub Enterprise. Una vez hecho esto en el apartado Code tendré una nueva opción llamada Codespaces:

Crear un nuevo Codespace desde el repositorio de GitHub

Como es la primera vez que lo utilizo para este proyecto necesito crear uno nuevo. Además puedo seleccionar el tipo de máquina que necesito para trabajar con este repositorio en concreto:

Puedes elegir el tamaño de la máquina que provisionará para Codespace

Una vez elegida comenzará el proceso de creación y utilizará la configuración de la carpeta .devcontainer, la misma que cree para Remote Containers, para configurar el entorno.

Configurando el Codespace

Una vez termine el proceso verás que un Visual Studio Code aparecerá en formato web con la aplicación ejecutándose, de la misma forma que lo hice en mi local, por lo que puedo reaprovechar lo mismo que definí para la configuración del IDE tanto en local como en la nube, con Github Codespaces:

GitHub Codespaces

A través https://github.com/codespaces puedes ver todos los Codespaces que tienes creados, generar nuevos, eliminarlos, cambiar el tipo de máquina, etcétera.

¡Saludos!