Resumen

Conectar un servicio de backend con un sistema de integración continua y desplegarlo automáticamente en la nube es una de las prácticas más valiosas en el desarrollo profesional. A continuación se explica paso a paso cómo configurar Travis CI para hacer deploy de un proyecto en Express hacia Heroku, incluyendo notificaciones en Slack y correo electrónico.

¿Cómo se estructura el proyecto antes de configurar Travis?

El repositorio utilizado es Platzi Store Backend, un servicio construido con Express que expone una API de productos y recibos. Dentro de la carpeta source se encuentran las rutas principales: la ruta de productos y la de recibos, que se activan cuando un usuario realiza una compra en la tienda [0:20]. También hay utilidades que contienen los datos de productos y la configuración general del servidor Express.

Antes de avanzar con la integración continua, es recomendable ejecutar el proyecto de forma local para comprender su funcionamiento.

¿Qué contiene el archivo .travis.yml para hacer deploy a Heroku?

El archivo .travis.yml es el corazón de la configuración de Travis CI. Se crea en la raíz del repositorio y define todo el flujo de integración y despliegue [1:08].

¿Cómo se configura el entorno de Node.js y el caché?

  • Se establece el lenguaje como node_js.
  • Se activa el caché sobre el directorio node_modules y el archivo de npm, lo cual acelera las instalaciones en builds posteriores [1:22].
  • La versión de Node se fija en la 12.
  • Se configura la profundidad de Git en 3, lo que limita cuántos commits se leen del historial del repositorio [1:50].

¿Qué scripts se ejecutan antes del deploy?

En el package.json del proyecto existe un script llamado test. Aunque en este caso no hay pruebas reales, se utiliza el comando yarn test como parte del flujo para simular la ejecución de tests antes de enviar a producción [2:08]. Esto es fundamental en cualquier pipeline de integración continua: validar que el código pasa las pruebas antes de desplegarlo.

¿Cómo se configuran las notificaciones y el deploy?

Travis CI permite enviar notificaciones a distintos canales cuando un build tiene éxito o falla.

  • Se conecta un canal de Slack con el token correspondiente [2:38].
  • Se agregan direcciones de correo electrónico de las personas que deben recibir el estado de los builds [2:55].
  • Se configuran las opciones on_success y on_failure con el valor always para recibir notificaciones en ambos casos [3:15].

Para la sección de deploy, los elementos clave son:

  • Provider: se establece como heroku [3:38].
  • Cleanup y skip history: se activan para mantener limpio el entorno de despliegue [3:42].
  • API key: se obtiene desde la configuración de la cuenta en Heroku, en la sección inferior de Account Settings [4:28]. Esta clave se pega directamente en el archivo, aunque se advierte que no es una buena práctica exponer credenciales en texto plano; más adelante se protege con variables seguras.
  • App: el nombre de la aplicación creada en Heroku, en este caso platzi-store-backend [4:02].
  • Repo: se indica con el formato usuario/repositorio, por ejemplo dragonsmx/platzi-store-backend [4:15].

¿Cómo se sube la configuración y se activa el build?

Una vez guardado el archivo, se ejecutan los siguientes comandos en la terminal [5:10]:

bash git status git add . git commit -m "add travis file" git push origin master

Al hacer push, Travis CI detecta automáticamente el cambio en el repositorio y dispara el build sin necesidad de un trigger manual [5:38]. El proceso crea una máquina virtual, instala Node y npm, establece el caché e instala las dependencias del proyecto.

Cuando el build finaliza exitosamente, Heroku recibe el despliegue. Esto se puede verificar en el dashboard de Heroku, dentro de la pestaña Activity, donde aparece el hash del commit desplegado [6:02]. Simultáneamente, llega una notificación al canal de Slack con información del build: quién lo ejecutó, cuánto tardó y su estado [6:15].

Finalmente, al acceder a la URL del proyecto en Heroku y agregar la ruta /products, la API responde correctamente con los datos esperados [6:38].

¿Ya probaste hacer deploy de tu propio backend con Travis CI? Comparte tu experiencia y las dificultades que encontraste en los comentarios.