Desplegando nuestra aplicación TypeScript con GitHub Pages

En este tutorial vamos a prender a desplegar nuestra aplicación TypeScript con GitHub Pages

En los anteriores tutoriales creamos todo el entorno para trabajar con TypeScript y configurar un ciclo de integración continua (CI) con Parcel, Prettier, Estlint, etc.

Aquí abajo podrás seguir la serié de tutoriales anteriores que he estado realizando :

 

También  me gustaría que vieras este video de 2 minutos para entender dónde estamos y a dónde vamos.


Mi equipo es Mac

macOS Catalina
Versión 10.15.2

MacBook Pro (15-inch, 2018)
Procesador 2,9 GHz Intel Core i9 de 6 núcleos
Memoria 32 GB 2400 MHz DDR4
Gráficos Intel UHD Graphics 630 1536 MB


Este CI estaba incompleto porque no hacía despliegue de la aplicación a los usuarios finales.

Vamos a completar esta etapa publicando nuestra aplicación en GitHub Pages, veréis que sencillo es. Como siempre, empezad leyendo la documentación https://pages.github.com/.

Parto de esta estructura de proyecto donde tengo una carpeta src con las fuentes y Parcel me creará, al construir, una carpeta llamada dist con los js y html que han resultado de transpirar TypeScript.

Tenemos que partir de un repositorio público o de una versión pro de GitHub, por lo que voy a hacer público mi repositorio. Esto se hace desde los settings del propio repositorio.

Vamos a la sección “peligrosa” de setting, al final comprobais que lo tengo público porque aparece «Make private» (Hacerlo privado).

Un poco más arriba en la sección de settings nos vamos a GitHub Pages y vemos las opciones que tenemos.

Hay varias opciones para desplegar nuestro proyecto y hacerlo utilizable para el público. Leed esto con atención para que no sea confuso:

– Directamente podemos hacer que la rama master sea la rama por defecto. Si hacemos esto, cada vez que subamos cualquier push los usuarios lo pueden usar. De este modo podría valernos como entorno de pruebas en desarrollo, compile o no (complete o no el ciclo de CI).

– Podemos crear una carpeta de docs y, en el ciclo de integración continua, una vez que todo ha funcionado, podríamos añadir una nueva acción que sea copiar de la carpeta de dist a la de docs. Con esto, solo se actualiza la página cuando compila.

Mirar la pantalla, hay una tercera opción (realmente la que queramos pero sin complicarnos la vida para lo que queremos hacer).

Esta tercera opción consiste en crear una rama llamada gh-pages. De este modo, podemos tener los cambios estables (los que pasan las reglas de CI) en una rama aislada (llamemos de stagging o prepo).

Me voy a GitHub Desktop y la creo (podría hacerse desde cualquier sitio, el propio UI Web de GitHub).

A partir de ese momento se activa una opción más en las opciones de GitHub Pages, que es publicar lo que haya en esa rama:

Es lo que vamos a hacer. Cada vez que hagamos push, vamos a copiar los ficheros de la carpeta dist (recordar que es donde pone los ficheros Parcel) a la rama gh-pages.

Podríamos hacer algo más fino todavía, y es que cuando creemos una etiqueta con un patrón, solamente sea cuando se active este comando de Workflow de Github Actions, pero de momento nos da igual. Vamos con lo simple.

Para ello, vamos a usar una acción que se llama GitHub Pages Deploy https://github.com/marketplace/actions/github-pages-deploy

Vamos a nuestra carpeta de Workflow en el código.

Y añadimos estas líneas.

– name: Deploy en GitHubPages con secreto

uses: maxheld83/ghpages@v0.2.1

env:

GH_PAT: ${{ secrets.GH_PAT }}

BUILD_DIR: ./dist

 

Quedando:

Ahora tenemos que seguir las instrucciones y crear un secreto llamado GH_PAT con permisos de repositorio para que podamos realizar la acción.

Si no lo hacemos falla el ciclo de CI porque no tiene permisos para escribir.

Para añadir el secreto primero nos vamos a la configuración del usuario.

Le damos añadir Personal Access Tokens.

Elegimos permisos solamente de repositorio.

Y nos generará una clave que veremos solamente una vez. La copias para tenerla disponible en el portapapeles (Y no se la compartas a nadie ni la pongas en un tutorial :-))

Luego te vas a los settings de tu repositorio a la sección secretos.

Y creas un secreto con el nombre GH_PAT pegando el código en VALUE que te ha generado, el token.

Por lo que ya tenemos nuestro secreto.

Y ahora, al hacer push o modificar el fichero .yml corre nuestro ciclo de CI, copiando de la rama master todos los ficheros a la raíz de la rama Pages.

Aquí vemos nuestros ficheros.

Y podemos comprobar con nuestra URL que funciona.

Bueno, ya tenemos la infraestructura para programar en el front y desplegar. Ahora nos hacen falta un poco más de conocimientos para completar nuestro juego.

 

Aquí te dejo el siguiente tutorial:

Iniciando un juego en TypeScript

 

 

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad

Información básica acerca de la protección de datos

  • Responsable: IZERTIS S.A.
  • Finalidad: Envío información de carácter administrativa, técnica, organizativa y/o comercial sobre los productos y servicios sobre los que se nos consulta.
  • Legitimación: Consentimiento del interesado
  • Destinatarios: Otras empresas del Grupo IZERTIS. Encargados del tratamiento.
  • Derechos: Acceso, rectificación, supresión, cancelación, limitación y portabilidad de los datos.
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad

Creador y propietario de AdictosAlTrabajo.com, Director General de Autentia S.L., Profesor asociado en IE Business School, inversor en StartUps y mentor de emprendedores. Ingeniero Técnico de Telecomunicaciones y Executive MBA por IE Business School 2007. Twitter: Follow @rcanalesmora Autor de los Libros: Planifica tu éxito: de aprendiz a empresario, Informática profesional, las reglas no escritas para triunfar en la empresa, Conceptos ágiles aplicados a distintas áreas de una empresa y Conversaciones con CEOs y CIOs sobre Transformación Digital y Metodologías Ágiles. ¡Descárgalos gratis aquí! Puedes consultar mi CV y alguna de mis primeras aplicaciones (de los 90) aquí.

¿Quieres publicar en Adictos al trabajo?

Te puede interesar

22/06/2026

Juan Antonio Jiménez Torres

Vamos a instrumentalizar un SDD para un microservicio bancario. En este artículo sobre SDD - Spec Driven Development, instrumentalizado sobre OpenSpec vamos a construir una PoC de algo más serio que una tabla periódica. Un microservicio bancario muy simplificado que gestione cuentas y permita hacer transferencias

16/06/2026

Juan Antonio Jiménez Torres

Este es el segundo artículo sobre SDD, Spec Driven Development, instrumentalizado sobre OpenSpec. Pero esta vez nos acercaremos usando softwere gratuito. Por un lado OpenCode en lugar de ClaudeCode y usando el modelo gratuito Gemma4 de Google en lugar de otros de pago.

08/06/2026

Juan Antonio Jiménez Torres

Aprenderemos sobre SDD – Spec Driven Development instrumentalizado sobre OpenSpec. Haremos un primer acercamiento usando ClaudeCode con Sonnet, para luego, en un artículo posterior pasarnos a la versión gratuita de OpenCode con Gemma4