domingo, 16 de octubre de 2011

Integración continua con Rails

La integración continua de una aplicación de rails llamada 'pruebaIC' se realizará  gracias a Railsonfire , el cual integrará nuestros cambios en git ,subidos al GitHub , y los desplegara en Heroku.
Se necesita basicamente cuatro requisitos  :

  1. Git como control de versiones.
  2. cuenta de GitHub .
  3. Con la cuenta de github accederemos a Railsonfire.
  4. Cuenta en Heroku.
Me salto la configuración de  git para nuestra app  y de subirlo a GitHub(en su pagina hay muy buena documentación).
Para instalar el Railsonfire solo hace falta teclear este comando por consola : 
  • $ gem install railsonfire

Luego instalaremos Heroku  por consola :
  • $ gem install heroku
Ahora nos metemos en la pagina web  de Heroku y Railsonfire para crearnos un cuenta.Necesitaremos estar logados en GitHub y Railsonfire para proceder a la integración.
Cuando tengamos la cuenta creada , debemos asociarla a nuestra aplicación (nos pedira nuestro usuario y password) :

$ heroku create
Enter your Heroku credentials.
Email: manute@example.com
Password: 
Uploading ssh public key /Users/manu/.ssh/id_rsa.pub
Created http://pruebaIC.heroku.com/ | git@heroku.com:pruebaIC.git
Git remote heroku added
Ahora ya tenemos nuestro proyecto asociado remotamente al Heroku con Git, entonces  Railsonfire mediante un fichero llamado railsonfire.yml, que ahora veremos como lo creamos , realizara la integración.

Para crear el fichero railsonfire.yml y asociarle nuestro proyecto , necesitamos este comando dentro de nuestra carpeta raiz del directorio , ej : pruebaIC/

$ railsonfire new
Te creará el archivo railsonfire.yml   y te dará una url de hook  del tipo http://railsonfire.com/hook/365e6330-da11-012e-64ad-1223491807ad  para configurar en https://github.com/NombreUsuario/pruebaIC/admin/hooks , la cual añades a Post-receives Url .

En el archivo  railsonfire.yml podemos ver la ejecución que hará Railsonfire :

:deploy:
  :branch: master
  :commands:
  - git remote add heroku git@heroku.com:pruebaIC.git
  - git push heroku $COMMIT_ID:master
:test:
  :commands:
  - gem install bundler --no-ri --no-rdoc
  - bundle install --without development production
  - bundle exec rake db:migrate
  - bundle exec rake
:ruby_versions:
- 1.8.7

Luego con realizar los comandos de git  :

Con el '.' añades todos los ficheros a git modificados o nuevos
$ git add .  
Comprometes los cambios con un comentario
$ git commit -a -m 'Probando IC'
Realizas los cambios con el GitHub o repositorio remoto
$ git push origin master

Si todo va bien, en tu cuenta de Railsonfire aparecerá el proyecto nuevo.El cual estará ejecutando todo lo que le decimos en el fichero railsonfire.yml .




martes, 11 de octubre de 2011

Instalación Rails


Estoy empezando a utilizar Ruby on Rails en mi casa a modo de ejercicio para ver que potencia tiene.La verdad que me está sorprendiendo la facilidad de manejo y la potencia de lenguaje.Estoy siguiendo el libro ‘Agile Web Development with Rails ‘ el cual se lo recomiendo a cualquiera que quiera aprender  desde el principio con rails.Es un libro muy didáctico y ameno , con un gran ejemplo desde el inicio hasta el fin.
Para empezar debemos instalar Ruby .Al ser usuario de mac , ruby viene instalado por defecto , cojonudo!!! , por eso pagas tus 1000 e!! . Pero si quieres instalarlo , por ejemplo, en linux(Ubuntu 10.04, Lucid Lynx) estas son las instrucciones desde el terminal :
  • sudo aptitude install build-essential libopenssl-ruby libfcgi-dev
  • sudo aptitude install ruby irb rubygems ruby1.8-dev
  • sudo aptitude install sqlite3 libsqlite3-dev
Ahora instalaremos el framework Rails  y la base de datos SQLite3 :
  • sudo gem install rails —pre
  • sudo gem install sqlite3-ruby
Ahora lanza este comando  : rails -v .Si no te reconoce el comando de rails , necesitas añadir /var/lib/gems/1.8/bin a tu PATH  asi :
  • export PATH=/var/lib/gems/1.8/bin:$PATH
Con todo esto ya podrías tener instalado Ruby on Rails en tu maquina.
A disfrutar de Rails !!!

Karma


Creo en el Karma, como la reacción a las acciones buenas o malas realizadas en el pasado más o menos inmediato.

Esto es un poco exagerado para la gente normal, pero para un tipo como yo que he me he empapado de mucha lectura gratis sobre todo de compañeros de la profesión que han decidido dedicar su tiempo ha compartir la información , me parece lo mínimo escribir un blog.
Por eso me decidí a escribir este blog , que minimo que aportar algo cuando te has hinchado a leer gratis !!!
Antes era reticente a compartir info , siempre decía lo mismo   ‘No es que no tengo tiempo’, ‘o no me apetece’ o ‘ya lo hacen otros’..(es un poco injusto si, pero quién no lo ha pensado alguna vez).
De hecho, he leido muchos blogs de compañeros desarrolladores,sobre Java ,TDD,agilismo ,  etc .. y solo puedo aportar mi granito de arena, que no será mucho , pero por algo se empieza.
Quiero dar las gracias ,sobre todo, a la gente que escribe en los blogs para compartir información los cuales ayudan a crear un ecosistema perfecto para el aprendizaje del desarollo del software.
Saludos!!!