Primeiro projeto open source em Rails – Reploy
No ano passado, eu trabalhei em um projeto Rails para o site da igreja que frequento (IPI). O site não exigiu muitas funcionalidades esdruxulas, então o desenvolvi com certa velocidade.
Contando a minha experiência em Rails, creio que o mesmo site estaria pronto em uma ou duas semanas, trabalhando nas minhas horas de folgas. Pra falar a verdade a parte de layout foi a que mais me deu trabalho.
Outra coisa que dá um pouco de trabalho é o deploy das alterações que faço localmente. No SAP, temos um sistema de transportes e change requests que torna o deploy uma coisa de criança.
Pensando nisso é que nasceu o Reploy, um script para deploy escrito em Ruby.
É um script extremamente simples, que gera um arquivo .tar com o delta das alterações entre o último commit deployed e último commit no desenvolvimento. A idéia não é ser um sistema tão complexo como o do SAP ou Capistrano.
O fluxo de trabalho típico seria assim:
Passo 1: No seu computador local, após o commit (no Git, claro), você executa o script ruby repack.rb. Esse script é responsável por empacotar todos os arquivos do último commit (que ficou registrado no arquivo .last_repack) até o último commit feito.
Passo 2: Faz o upload do arquivo para o servidor destino.
Passo 3: Via SSH executar o script ruby reploy.rb. Esse script é responsável por mover as novas versões dos arquivos, copiar os novos e remover os arquivos que não fazem parte mais do projeto.
Após o passo 3, teríamos toda a estrutura do projeto no servidor de deploy sincronizada com o sua estrutura de desenvolvimento.
Esse script foi feito para atender as minhas necessidades, mas ainda faltam alguma coisas que gostaria:
- Upload automático
- Mecanismo de Rollback
- Interface gráfica
Por isso é um projeto Open Source, quem quizer pode contribuir. Ele está hospedado no GitHub e é muito fácil para quem quizer baixar o código e submeter melhorias.
Nos próximos posts, vou explicar melhor como ele funciona, gems que você precisa instalar etc.