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.