6 de febrero de 2020

Valida con Travis tu código en un repositorio GitHub

Hola,
tras escuchar un par de charlas en la London Perl Conference 2019 (vídeos aquí) tenía pendiente agregar una validación por integración continua a uno de nuestros repositorios en GitHub. Opté por Travis, aunque otra buena opción si empiezas de cero es https://about.gitlab.com 
https://travis-ci.org



Para qué sirve esto? Pues para no romper nada en bases de código que ya tienen un cierto tamaño cuando haces cambios a lo largo del tiempo. En mi caso, el repositorio https://github.com/eead-csic-compbio/get_homologues tiene más de 20K líneas de código y acumula actualizaciones (commits) desde noviembre de 2016. Al vincular este repositorio a Travis (https://travis-ci.com/eead-csic-compbio/get_homologues) cada vez que hago un nuevo commit/push se lanza una máquina virtual que hace una batería de tests y me informa si va todo bien o si algo se ha roto.

Es sencillo, debes seguir estos pasos:

  1. Vincular tu repositorio GitHub en https://travis-ci.com con el mismo usuario que usas en GitHub.
  2. Agrega al repositorio un fichero .travis.yml con instrucciones para que Travis sepa como instalar correctamente el código del repositorio y sus dependencias. Puedes comprobar mi ejemplo .travis.yml , adecuado para un proyecto en Perl. Verás que las dependencias de Perl están en el fichero cpanfile. Hay documentación para otrs lenguajes, por ejemplo python .
  3. En tu repositorio preparar una batería de tests o pruebas para comprobar que todo funciona cómo esperas. Por defecto Travis hace $ make test, por tanto lo más fácil es crear un fichero Makefile con un objetivo test incluído. Ejemplo: Makefile
  4.  En el fichero markdwon README.md de tu repositorio puedes agregar la siguiente línea, adaptada a tu proyecto, para tener el certificado actualizado de que el repositorio pasa los tests en su estado actual:
    [![Build Status](https://travis-ci.com/eead-csic-compbio/get_homologues.svg?branch=master)](https://travis-ci.com/eead-csic-compbio/get_homologues)
Hasta pronto, Bruno

9 comentarios:

  1. https://www.jeffgeerling.com/blog/2020/travis-cis-new-pricing-plan-threw-wrench-my-open-source-works

    ResponderEliminar
  2. https://dev.to/davorg/a-cpan-dashboard-i1o

    ResponderEliminar
  3. https://perlmaven.com/github-actions-running-on-3-operating-systems
    https://dev.to/davorg/github-actions-for-semi-static-web-sites-597g

    ResponderEliminar
  4. Genial esta herramienta para repositorios en continuo crecimiento.
    Gracias por la info!

    ResponderEliminar
  5. https://www.activestate.com/blog/perl-ci-cd-pipelines-for-github-actions

    ResponderEliminar
  6. https://mirror.as35701.net/video.fosdem.org/2021/L.lightningtalks/perl_the_hidden_gem.webm

    ResponderEliminar
  7. https://dev.to/szabgab/mejorar-una-libreria-utilizar-github-actions-3ado

    ResponderEliminar