Integración continua, Jenkins e iOS

Logo Jenkins¿Qué es la integración continua?

La integración continua  (Continuous Integration o CI) tiene como objetivo principal comprobar que cada actualización del código fuente no genere problemas en una aplicación que se está desarrollando. En un marco de trabajo en el que varios desarrolladores suben actualizaciones constantes de código fuente, fusionando el trabajo entre ellos, la integración continua permite que se compruebe en cada commit, si el nuevo ejecutable generado con los nuevos aportes, sigue funcionando correctamente con todos los test creados anteriormente. De esta forma se detectan los posibles errores en una fase muy temprana, identificando fácilmente cuales son los cambios recientes y la corrección se hace mucho más sencilla.

Read more

GitHub para Snow Leopard


Logo GitHub

Logo GitHub

La semana pasada os hacía un resumen del fantástico sistema de control de versiones GIT. En esa entrada os hablé de un programa para poder gestionar de modo visual las operaciones con el repositorio, add, commit, ramas, push, historial de commits y archivos… etc. Hoy quería subiros aquí una versión antigua de GitHub para Snow Leopard. Me acuerdo que cuando la intenté conseguir me pasé mucho tiempo buscándola, ya que en la página oficial (http://mac.github.com/) solo te permite descargar la última versión, me imagino que ahora compatible con Lion y Mountain Lion.

Después de descargarla se actualiza automáticamente a la versión 1.2.3 que es la última para el sistema operativo Snow Leopard.

Introducción a GIT

Logo Git

Logo Git

El otro día me propusieron que diera a mis compañeros un seminario de GIT. GIT es un sistema de control de versiones (SCV) con muchas ventajas frente a otros sistemas como CVS y SVN, habituales entre los desarrolladores.

GIT fue creado en 2005 por Linus Torvalds, el creador de Linux, debido a que el control de versiones que estaban usando hasta ese momento, BitKeeper, pasó a ser de pago. En ese momento decidieron hacer su propio control de versiones, nació GIT. Sus principales características son rapidez, diseño sencillo, fuerte apoyo al desarrollo no lineal (es decir usando miles de ramas paralelas) y es capaz de manejar grandes proyectos, como el núcleo de Linux, de manera eficiente (velocidad y tamaño de los datos).

Una de sus principales novedades, es que es distribuido, es decir, todos los ordenadores tienen una copia del repositorio completo. Gracias a esta funcionalidad puedes estar trabajando en local sin conexión a internet, hacer commits, ramas y luego cuando vuelvas a estar conectado, subirlo al repositorio principal.

GIT además entiende cada uno de los commit, que recuerdo que son locales, como una instantánea del proyecto en ese momento, no como diferencias en archivos como otros SCV. De esta forma podemos volver a un estado anterior fácilmente si usamos mensajes descriptivos al hacer dichos commit.

El repositorio “origin” (así lo llama GIT, es el principal), se puede colocar en cualquier directorio de la red local, acceder por SSH, o incluso colgarlo de un acceso HTTP.

Para aprender los comandos básicos de GIT y empezar a usarlo, os dejo el enlace a este guía de referencia:

Además si queréis profundizar en las entrañas de este sistema de control de versiones, el enlace al libro gratuito de git en español:

Después de dar el seminario, me di cuenta de la reticencia que tienen “ingenieros” en usar la consola de comandos, nos hemos acostumbrado a un entorno visual, mucho más perezoso y poco potente, pero que muchos no saben trabajar sin él. Así que para los que seáis así, saber que tenéis muchas herramientas visuales para usar GIT, y que solo son un envoltorio de las operaciones reales en consola de comandos. De entre todos destacar uno multiplaforma y hecho por la gente de github.com:

http://windows.github.com/

http://mac.github.com/

Y un plugin para eclipse, para los que están acostumbrados a este IDE:

http://www.eclipse.org/egit/

Os animo a todos a que lo probéis, una vez que se pasa la barrera del cambio a algo nuevo, que siempre nos cuesta a todos, estaréis encantados de su eficiencia, rapidez y sencillez. Muy pocas veces he tenido que hacer un merge a mano.