*Este artículo es la tercera parte de «Cómo mejorar la calidad y mantenibilidad de proyectos».

Esta vez trataremos una pequeña configuración que nos ayudará a agilizar nuestros proyectos gracias a la integración continua con Travis CI.

¿Qué es Travis CI?

Es una aplicación que se integra con Github, Gitlab, BitBucket… llevando a cabo las instrucciones que especificamos en un Dotfile que se encuentra en la raíz de nuestro proyecto, como el resto de configuraciones que ya hemos hecho. Podemos asemejar Travis con Jenkins o cualquier herramienta de CI ya que funciona a través de jobs. En nuestro caso, Travis CI ejecutará nuestros jobs cuando se cree una Pull Request y restringimos solo a las que tengan como target la rama master.

1. Crearemos el repositorio.

2. Haremos login en https://travis-ci.com/ con Gitlab, Fithub… o donde tengas creado el repositorio y añade este dando click en el símbolo + de la izquierda:

3. Una vez hagamos click nos dejará buscar entre nuestros repositorios. En mi caso, travis-ci:

4. Una vez dentro, tendremos que hacer clic en “activar repositorio”:

5. Ahora es cuando podemos empezar a jugar en nuestro Editor de Código (IDE), creando en la raíz del proyecto el Dotfile .travis.yml:

Enfoquemos estos comandos/jobs como si fuese un Dockerfile ya que Travis creará una especie de instancia con estos requisitos.

6. En estos momentos tenemos commits que mergear en master. Al haber configurado travis solo para master, hasta que no hagamos pull request sobre esta, no veremos cambios la plataforma travis, así que vamos a ello:

Conforme pasemos de job podemos ir viendo en ambas plataformas cómo cambian los colores de las actions y su estado.

7. Es interesante usar las notificaciones de las que nos provee Travis CI, pudiendo configurar notificaciones vía Email, Slack… y la concurrencia de estas notificaciones.

Si queremos recibir correos electrónicos:

Pudiéndose usar como correo por defecto el que configuremos en nuestra configuración global de git:
$ git config –global user.email “one@example.com”
En Microsoft Teams, deberemos instalar el conector de Travis CI de la store de aplicaciones de Teams y en la configuración de este nos dará la url de webhook que necesitamos:

Para Slack:

8. ¿Qué ocurre cuando todo termina?
Como podemos ver en las siguientes imágenes es muy sencillo saber si el pull request es válido para mergearse, de modo que el desarrollador encargado de validarlo puede confiar en el resultado mostrado.

9. Ahora vamos a lanzar un job que nos despliegue dentro de las github pages nuestra aplicación. Para ello, configuraremos nuestro repositorio:

10. Creamos un token de despliegue para github pages y lo configuramos en la plataforma de travis para este repositorio:
Creamos el token en https://github.com/settings/tokens:

Copiamos el token generado y vamos a https://www.travis-ci.com, abrimos la configuración de nuestro repositorio para insertar como variable de entorno nuestro nuevo token:

11. Por último, le damos funcionalidad dentro de nuestro fichero .travis.yml, donde $GITHUB_TOKEN es donde Travis CI insertará el contenido de la variable de entorno configurada con el token generado.

Esta última funcionalidad va a crear la rama gh-pages si no existe por lo que deberemos poner la configuración de pages apuntando a esta rama, dejando el directorio root y la rama de esta manera:

Y por tanto la github pages se verá de la siguiente manera:

Repositorio de ejemplo: https://github.com/Naxirdan/travis-ci

En los siguientes posts, veremos cómo hacer todo esto y mucho más desde github actions y, ¡muchas más features!

Adrián Cejudo

Adrián Cejudo

IT Consultant - Altran España

Enamorado de las nuevas tecnologías. Comencé mi andadura en la programación de manera autodidacta a los 15 años y a día de hoy sigo formándome de manera constante con el mismo ímpetu y ganas. Mi objetivo en Altran es poder aportar toda mi experiencia y conocimiento en las distintas áreas, y por supuesto, desarrollarme profesional y personalmente gracias a los magníficos expertos y compañeros de los que nos rodeamos en el día a día.

Quizá también te interese…