Integración continua con CodeShip
27 Jan 2016Sigo trabajando en este Blog como escusa para poner al día mis conocimientos y probar cosas nuevas.
Ahora le toca el turno a la integración continua.
Ya había trabajado en el pasado con Cruise Control, Jenkins y Sonar, pero nunca había probado las soluciones que hay en la nube, muchas de ellas gratuitas.
He elegido codeship por que es el producto usado por uno de los blog en Jekyll que he usado como referencia y tenia un manual muy detallado de como hacer la integración.
Configuración del proyecto
La configuración es muy fácil solo hay que seguir unos sencillos pasos.
- Elegir el origen de código fuente (Github o Bitbucket)
- Seleccionar la plantilla de
ruby
para el tipo de proyecto
rvm use 2.2.0 --install
bundle install
A la configuración estándar hay que añadir una linea mas para que se instalen las dependencias de nuestro proyecto.
rvm use 2.2.0 --install
bundle install
bundle update
Para que bundle install bundle update
funcione es necesario tener un fichero gemfile en el repositorio
source 'https://rubygems.org'
gem 'github-pages'
Ten en cuenta que con este fichero gemfile no solo se instala Jekyll. github-pages
contiene todas las dependencias y nos asegura que el build sera el mismo que realiza GitHub de forma automática.
En Test Commands únicamente es necesario invocar al build de Jekyll
bundle exec jekyll build
Ahora cada vez que realicemos un commit en cualquier branch se lanzara un build el CodeShip
Esto es especialmente útil si cada cambio del blog (como un nuevo post) lo hacemos en una nueva rama, como se ve en la siguiente imagen.
Trabajar asi nos permite saber si hay algún error en el código antes de aceptar el pull request y que pase a formar parte de la rama main.
Todos los build de nuestro proyecto los podemos ver en una pantalla similar a esta.
Como se puede ver en la imagen hay un build erróneo, pero eso sera parte de mi siguiente post, añadir validación HTML