Álvaro Beleño

Administración de sistemas

Integración Continua - Construyendo un blog con Hugo, Travis y GitHub Pages

En esta entrada veremos cómo crear un blog como este mismo, usando integración continua con las herramientas Hugo, Travis y GitHub Pages. Cuando ya tengamos todo configurado, lo único que tendremos que hacer es escribir nuestros posts en Markdown, hacer un push a nuestro repositorio en GitHub y las tres herramientas anteriormente mencionadas se encargarán del resto :)

Primero, creamos el repositorio GitHub y en él crearemos la rama gh-pages, donde estarán los ficheros generados por Hugo, mientras que en la rama master será donde tendremos los ficheros Markdown, así como el fichero .travis.yml y el config.toml que exportaremos a Travis en el proceso de Integración Continua.

El fichero .travis.yml será el siguiente:

install:
  - wget https://github.com/gohugoio/hugo/releases/download/v0.53/hugo_0.53_Linux-64bit.deb && sudo dpkg -i hugo*.deb
  - git clone https://github.com/alvarobrod/blog.git

script:
  - rm hugo*.deb
  - hugo new site sitio
  - mkdir -p sitio/content/post
  - mv blog/content/post/* sitio/content/post
  - mv blog/config.toml sitio/
  - cd sitio/themes && git clone https://github.com/nirocfz/arabica && cd ..
  - hugo -t arabica
  - rm -rf themes/arabica

deploy:
  provider: pages
  local-dir: sitio/public
  skip-cleanup: true
  github-token: $GH_TOKEN
  keep-history: true
  on:
    branch: master

Este fichero será el que le diga a Travis el proceso a seguir.

Y el fichero config.toml será el siguiente:

baseURL = "/blog"
title = "Álvaro Beleño"
author = "Álvaro Beleño"
paginate = 3
theme = "arabica"

[params]
description = "Administración de sistemas"
twitter = "alvarobrod"

Una vez hecho esto, crearemos la carpeta post en el repositorio GitHub, donde guardaremos los ficheros Markdown que Hugo convertirá en nuestros posts.

Ahora, para hacer que Travis pueda hacer commits a nuestro repositorio GitHub, tendremos que crear un Token de autenticación. Para esto, en GitHub debemos irnos a la sección Settings y desde ahí a Developer settings y Personal access tokens. Una vez tengamos creado este Token, añadiremos el mismo como una variable de sistema en Travis, yendo a la página del repositorio y a Settings (Habiendo activado nuestro repositorio en Travis primero).