Travis-CI para integración continua

En este post voy a compartir parte del trabajo de los alumnos del curso de testing de la UCU en 2017, que expliqué el objetivo en este otro post. Esta vez comparto la sección dedicada a la herramienta para orquestar la integración continua, llamada Travis-CI, y los pasos para comenzar a configurar un pipeline.


Travis-CI es un sistema de Integración Continua, gratuita para proyectos Open Source y de pago para proyectos privados. Se integra sin problemas con GitHub y automáticamente ejecuta el pipeline definido en cada push o pull requests. Testea y buildea aplicaciones escritas en Ruby, Node, Objective-C, Go, Java, C# y F#, entre otras (que corran en Linux).

Posee su propia “Deploy engine” la cual permite a los desarrolladores testear por completo sus aplicaciones para luego realizar exitosamente el deploy sin sorpresas. Travis-CI tiene un proveedor para Azure Web Apps, que permiten combinar GitHub y Travis-CI con Azure para realizar los deploys automáticos.

Si bien es similar a Jenkins, tiene sus diferencias. No utiliza tareas programadas, no tiene costos de mantenimiento (esta hosteado como servicio), el setup es “simple”, entre otras.

Cuenta con aproximadamente 300.000 proyectos y 235.00 usuarios probando los mismos. Estos números hablan sobre la importancia de la herramienta y lo robusta que es. Agregado a esto, algunas de las compañías más importantes que utilizan Travis son Facebook, Heroku, Mozilla, Rails, Twitter, Zendesk, Slack.

La documentación es bastante completa. En la página oficial se puede encontrar documentación paso a paso con variados lenguajes. A demás, Travis-CI cuenta con una comunidad activa muy grande, por ende encontrar soluciones a problemáticas es bastante común mediante la búsqueda en Google.

Requerimientos

Para la tarea fue necesario contar con un repositorio GitHub que contenga el código de OpenCart (el sistema bajo pruebas) y con una cuenta en Travis-CI y en Azure (se utilizaron las opciones gratuitas).

Pasos a seguir

  • El primer paso es crear un repositorio GitHub que contenga el código de la aplicación a la cual queremos incorporar en Travis-CI.
  • Una vez el repositorio es creado, debemos dar permisos a Travis para conectarse con el mismo. Para esto debemos ir a las configuraciones del repositorio, hacer click sobre “Servicios” y seleccionar Travis-CI. Una vez allí seleccionar “Add to GitHub”.

  • Luego de esto, en la próxima página debemos otorgar todos los permisos requeridos a Travis-CI.

  • Una vez en Travis-CI, seleccionar el “+”, buscar el repositorio sobre el cual queremos trabajar y hacer click sobre el switch.

  • Volver al repositorio GitHub y crear el archivo .travis.yml. Este archivo debe estar alojado en la raíz del proyecto. Le indicará a Travis-CI lo que debe realizar cada vez que ejecuta un Build. En el archivo incluir al menos las siguientes líneas: 
Language: java
Jdk: oraclejdk8

 

  • Estas líneas indican el lenguaje de programación y la versión de la JDK que se debe utilizar para hacer el build (en este caso la aplicación lo necesita).
  • Luego de este paso hacemos el commit correspondiente. En el momento que sea realiza el commit, Travis-CI va a ejecutar el Build, por lo que si abrimos la pestaña veremos que hay una tarea corriendo.

  • En caso de que el Build sea satisfactorio, Travis-CI presentará los resultados en verde, de lo contrario los mismos se verán rojos. En cualquiera de los dos casos, hay una pequeña descripción.

  • Estos han sido los pasos mínimos para configurar Travis-CI. Se pueden agregar muchas tareas más como notificaciones por email, por Slack, correr otros tipos de pruebas, hacer build con varios SDK distintos, entre otras. Todo esto es configurable mediante el archivo .travis.yml y en la documentación oficial explica todo lo que podemos hacer (https://docs.travis-ci.com/).

 

Leave a Reply

Your email address will not be published. Required fields are marked *