Deploy de aplicação rails com controle de versão na Hostnet

Por RamonPage

OLHANDO O RODAPÉ do Ortografa, dá para perceber que a Hostnet é parceira do projeto. Recentemente, decidi colocar todo o repositório do projeto no GitHub1 e percebi que não teria grandes problemas em integrá-lo.

Este post não tem nenhuma relação comercial com a Hostnet. Quero apenas mostrar como foi bastante simples fazer do GitHub o repositório padrão dos meus deployments.

1 – Para quem não sabe, o GitHub é um excelente hosting para compartilhamento de arquivos e monitoramento de projetos web. É baseado em Git, que talvez seja o melhor sistema de controle de versão da atualidade.

Foi tão simples que penso ser necessário apenas três passos.

1. Criando um projeto no GitHub

Crie um novo projeto através do seu menu de repositórios. Tendo o link de clone do projeto em mãos, será necessário seguir os passos que o GitHub descreve na primeira tela do seu projeto. Basicamente, é preciso instalar o Git na sua máquina (caso ele não esteja instalado) e configurar o seu ambiente2.

2 – O meu ambiente já tinha uma SSH Key configurada. Portanto, não me aterei a este detalhe. Veja o tutorial do próprio GitHub que explica como gerar a sua.

2. Configurando o ambiente

Crie a pasta do seu projeto (ou vá até o seu projeto existente) e digite os seguintes comandos:

$ git init
$ touch README
$ git add README
$ git commit -m 'first commit'
$ git remote add origin git@github.com:seu_usuario/seu_projeto.git
$ git push origin master

Seu branch master agora está pronto para receber os arquivos do projeto. No meu caso, o projeto já estava criado. Então, bastou que eu adicionasse todos os demais arquivos e fizesse um novo push.

3. Alterando a receita de deploy da Hostnet

Na página de tutoriais da Hostnet é possível encontrar um tutorial de como criar sua receita de deploy para Capistrano.

Para indicar que o GitHub era o novo repositório padrão, bastou incluir:

# ---------------------------------------------------------------
# Git config.
# ---------------------------------------------------------------

set :repository, "git@github.com:RamonPage/meu_novo_projeto.git"
set :scm, :git
set :scm_passphrase, ""
set :git_shallow_clone, 1
set :branch, "master"

Ou seja, basicamente indiquei o :scm como :git e adicionei alguns parâmetros que podem ser encontrados aqui. O :scm_passphrase não era necessário, então deixei em branco.

Após, comentei duas das linhas logo abaixo. No arquivo pede explicitamente para não alterar, mas era necessário :)

# ------------------------------------------------------------------------------
# Não alterar daqui pra baixo!
# ------------------------------------------------------------------------------
# set :scm, :none
set :deploy_via, :copy
# set :repository, File.expand_path( File.join(File.dirname(__FILE__), "/..") )

Linhas com o :scm e o :repository comentadas, já que o GitHub foi indicado como repositório padrão nas linhas acima.

Finalizando

$ cap deploy:setup
$ cap deploy

Se tudo der certo, seu projeto hospedado na Hostnet agora pode contar com o poder do Git :)

ATENÇÃO: Esta configuração ficou perfeita para o ambiente do meu projeto, porém não há garantias de que seja a adequada para o seu também. Faça as modificações por sua conta e risco. Não me responsabilizarei por elas. Boa sorte!

Marcado em:

* * *