Integração contínua com Hudson e Delphi – Parte II

May 20, 2010

Na primeira parte desta série, apresentei o conceito de integração contínua, mas me mantive apenas na teoria. Agora vamos preparar o terreno para colocarmos a idéia em prática instalando as ferramentas necessárias.

Em primeiro lugar, precisamos de um tipo de software conhecido como servidor de integração contínua. Eu utilizo o Hudson, um servidor escrito em Java mas que pode trabalhar com projetos escritos em qualquer linguagem. Este servidor é que será responsável obter o código fonte do projeto no servidor de controle de versão, iniciar o build, manter um histórico dos builds bem e mal sucedidos, etc.

Sendo escrito em Java, então já sabemos que vamos precisar também da JVM. Como este sistema usa a tecnologia JEE, precisaremos também de um servidor de aplicações. O Apache Tomcat dá conta do recado.

Então a primeira coisa é baixar e instalar o Java SDK e o Apache Tomcat.

Nos dois casos, a instalação segue o modelo NNF (Next, Next, Finish), então não vou entrar em detalhes aqui.

Obs: Daqui para frente, irei considerar que o Tomcat foi instalado em “C:\Arquivos de Programas\Apache Software Foundation\Tomcat 6.0\” e que os valores padrão da instalação foram mantidos, ou seja, a porta utilizada será 8080

O Tomcat é instalado por padrão como serviço. Eu tive alguns problemas para o Hudson compilar meus projetos Delphi quando o Tomcat está rodando como serviço, então passei a utiliza-lo como aplicativo mesmo. Para fazer isso, primeiro temos que desativar o serviço Tomcat:

  1. Vá até o gerenciador de serviços do Windows, localize o serviço “Apache Tomcat 6″ (Ou seja lá qual versão que você instalou)
  2. Clique com o botão direito do mouse sobre o serviço e clique em “Parar”
  3. Aguarde até o serviço ser finalizado
  4. Clique com o botão direito do mouse sobre o serviço e clique em “Propriedades”
  5. Em “Tipo de inicialização”, selecione “Desativado”
  6. Clique em “OK” e pronto

Agora precisamos de um meio para que o aplicativo Tomcat seja iniciado automaticamente junto com o Windows.
O jeito mais simples é colocar um atalho para “C:\Arquivos de Programas\Apache Software Foundation\Tomcat 6.0\bin\tomcat6.exe” na pasta “Inicializar” do Menu Iniciar do Windows.

Uma vez que o Tomcat já esteja pronto, podemos instalar o Hudson nele. Para isso, baixe-o aqui.

Coloque o arquivo hudson.war que você baixou na pasta “webapps” onde está instalado o Tomcat.

Provavelmente o Tomcat não estará rodando agora. Então execute o arquivo “C:\Arquivos de Programas\Apache Software Foundation\Tomcat 6.0\bin\tomcat6.exe” para coloca-lo em execução.

Se tudo correu bem, você agora poderá acessar o Hudson por este endereço: http://localhost:8080/hudson/

Mas antes de podermos efetivamente utiliza-lo, devemos ter um projeto configurado em algum servidor de controle de versão. Por padrão, o Hudson vem com suporte para CVS e Subversion. Sei que existe um plugin que adiciona suporte a Starteam. Creio que existam plugins para diversos outros sistemas de controle de versão também.

Irei utilizar aqui o Subversion. Então devemos agora configurar um servidor Subversion, e no nosso caso será utilizado o VisualSVN que pode ser baixado aqui. A instalação dele tambem é simples, apenas mantenha os valores padrão que o instalador sugere e vá dando Next para prosseguir.

Ao final da instalação, o VisualSVN Server deve ter sido aberto. A tela dele é essa aqui:
Tela inicial do VisualSVN Server

Agora vamos criar dois usuários no servidor: Um para nós mesmos, e outro para o Hudson utilizar quando for necessario baixar os fontes do servidor. Para isso, você deve localizar a pasta “Users” que fica no painel à esquerda na tela do VisualSVN. Clique com o botão direito nela, e depois em “Create User”. Informe nome de login, senha, repita a senha, e clique em “OK”. Irei utilizar como nome de usuários “magno” e “hudson”, sendo as senhas iguais aos respectivos nomes. Após fazer isso, a tela do seu VisualSVN deve estar semelhante a esta:
Tela do VisualSVN com os usuários criados

Precisamos ainda criar um repositório, que é o local onde os fontes do nosso projeto ficam localizados. Para isso, localize o item “Repositories” na tela principal do VisualSVN, clique com o botão direito e depois em “Create New Repository”. Na tela que se abre, digite o nome para o repositorio (irei utilizar “DemoIC”) e clique check box que diz “Create default structure (trunk, branches, tags)” e depois em “OK”. Habilitar este check-box faz com que sejam criadas três pastas no nosso repositório chamadas “trunk”, “branches” e “tags”, embora elas não sejam um pre-requisito para o funcionamento nem do Subversion nem do Hudson, seu uso constitui uma boa prática e por isso incentivo seu uso aqui. O propósito de cada uma destas pastas está além do escopo deste artigo, então não vou me aprofundar aqui).

Neste momento, o VisualSVN deve estar assim:
Tela do VisualSVN com o repositório criado

Agora que já temos o servidor Subversion rodando, repositório criado e Hudson em execução, podemos começar a trabalhar nosso projeto em Delphi. Mas para sermos capazes de usar o Subversion para gerenciar os fontes deste projeto, vamos precisar de um cliente para o mesmo. Eu uso o TortoiseSVN, que é gratuito e se integra ao Windows. Então baixe-o aqui e então execute o instalador. Mantenha as opções padrão e vá avançando. Ao final, você terá que reiniciar o computador.

Muito bem, vamos começar a trabalhar no nosso projeto em Delphi (vou partir do princípio que ele já está instalado, ok?).

Então agora crie no seu computador uma pasta chamada DemoIC, pode ser em qualquer lugar. Esta será a sua pasta de trabalho, onde você poderá trabalhar no projeto.

Agora abra a pasta, clique como botão direito em qualquer área livre dela e clique em “SVN Checkout”. Em “URL of repository”, coloque “https://localhost/svn/DemoIC/trunk” (sem as aspas) e clique “OK”. Provavelmente aparecerá uma janela como esta:
Clique em “Accept permanently”.

Após isso, será aberta a seguinte tela:

Esta tela está pedindo um nome de usuário e senha para se autenticar no servidor Subversion. Informe o nome de usuário e senha que você cadastrou no VisualSVN (mas não o usuário destinado ao hudson). Se quiser, marque o checkbox “Save authentication” para que você não precise informar estes dados sempre que fizer algo no repositório.

Por hoje ficaremos por aqui. O objetivo desta parte da série era apenas mostrar a instalação e configuração de toda a infra-estrutura necessária para por em prática a integração contínua com projetos Delphi. No próximo, vamos finalmente implementar um projeto de demonstração em Delphi e ver o Hudson em funcionamento.

One Response to “Integração contínua com Hudson e Delphi – Parte II”

  1. Muito bom!!!!

    Espero o próximo post.

    Abraço!

Leave a Reply

Spam protection by WP Captcha-Free