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/).
¡Excelente artículo sobre Travis-CI y su importancia en la integración continua! Es impresionante ver cómo esta herramienta facilita la automatización de pruebas y despliegues, especialmente con su integración perfecta con GitHub y su capacidad de ejecutar pipelines con diferentes lenguajes de programación.
La comparación con Jenkins y las diferencias destacadas, como la ausencia de costos de mantenimiento y la sencillez en el setup, hacen que Travis-CI sea una opción atractiva para muchos desarrolladores y empresas. Además, el respaldo de compañías líderes en la industria tecnológica y la gran cantidad de proyectos y usuarios que confían en esta herramienta hablan de su robustez y confiabilidad.
La documentación detallada y la comunidad activa son aspectos clave que hacen que Travis-CI sea una herramienta accesible y valiosa para los desarrolladores que buscan mejorar sus procesos de integración continua.
Personalmente, estoy interesado en explorar más sobre la integración de Travis-CI con Azure Web Apps y cómo puede simplificar el proceso de despliegue automático en esa plataforma.
¡Gracias por compartir esta información tan útil sobre Travis-CI! ¡Espero seguir aprendiendo más sobre esta herramienta y todas sus capacidades!