Automatizando el deploying del blog con Hugo y Travis.
Si algo caracteriza a muchos de los que trabajamos en sistemas es la aversión por hacer tareas repetitivas y monótonas, siempre que podamos vamos a recurrir a la automatización, de esta manera nos queda mas tiempo para atender cosas importantes, aprender cosas nuevas o simplemente por el reto que significa automatizar esa tarea que tanto nos fastidia hacerla manualmente.
Como funciona este blog?
Primero comencemos por como funciona este blog, como comente anteriormente esta pagina esta creado con Hugo el cual mediante archivos Markdown genera archivos estáticos que pueden ser hosteados directamente en cualquier servidor web sin mas requisitos. Para comenzar cree 2 repositorios de github, el primero es para mantener versionadas las entradas y configuración de este blog, el segundo es para hospedar mediante el servicio GitHub Pages y olvidarme de tener que mantener mi propio web server.
En un comienzo el proceso consistía en modificar o crear entradas, realizar manualmente en mi computadora el proceso de “build” mediante Hugo y enviar los archivos generados al segundo repositorio de github para ser visto mediante GitHub Pages. Este proceso resulta un poco engorroso ya que cada cambio necesita de resubir nuevamente los archivos modificados o nuevos.
Automatizando el deploy mediante Travis
Mediante Travis CI podemos automatizar el build y despliegue de nuestro sitio en GitHub Pages, para comenzar debemos crearnos un token para que Travis pueda acceder a nuestros repositorios, esto lo vamos a hacer mediante la url https://github.com/settings/tokens/new
Una vez creado nuestro token lo guardamos para poder utilizarlo mas adelante, luego nos logueamos en Travis CI con nuestra cuenta de github y habilitamos el repositorio donde estan los archivos de nuestro blog en basado en Hugo.
En la configuración del repositorio agregamos la variable de entorno “GITHUB_TOKEN” con nuestro token generado anteriormente
Por ultimo necesitamos agregar el archivo .travis.yml a nuestro repositorio para que travis sepa como construir el sitio en mi caso con el siguiente contenido.
|
|
Con esto ya tenemos todo armado para que Travis construya nuestro sitio con Hugo cada vez que hagamos un cambio en nuestro repositorio, ahora solo nos dedicamos a escribir sin tener que preocuparnos por nada mas.