Mostrando postagens com marcador integração contínua. Mostrar todas as postagens
Mostrando postagens com marcador integração contínua. Mostrar todas as postagens

Integração Contínua - Configurando o CruiseControl com o Subversion

0 comentários
Na semana passada eu comecei a estudar a integração contínua do CruiseControl com o Subversion . Para a minha surpresa não foi tão fácil achar alguma referência como eu imaginava, já que nos meus estudos sobre IC muito se falava sobre o CruiseControl, mas no fim eu consegui resolver os problemas e realizar a integração usando essas duas ferramentas.

Subversion
É um sistema de controle de versão open source e muito usado.
Não vou entrar em detalhes de como instalar e configurar o Subversion, vou considerar que você já trabalhe com sistema de controle de versão.



Cruisecontrol
É um framework para o processo de integração contínua, feito em Java. Ele inclui vários plugins, como: notificação de e-mail, Ant, Subversion e várias outras ferramentas de controle de versão.

Instalação
  1. Baixe a última versão do framework no seguinte link: http://cruisecontrol.sourceforge.net/download.html
    Há opção de baixar o zip ou o executável, você escolhe :)
  2. Instale
  3. Hora de configuração do CruiseControl com o Subversion.
    Tudo é configurado através do arquivo config.xml que fica na raiz da pasta de instalação do CruiseControl. Abra o arquivo citado e configure de acordo com o seguinte modelo:
    config.xml

Seguindo esses passos basta somente executar o CruiseControl e ele estará rodando com o Subversion.

Integração Contínua

1 comentários
Integração Contínua é uma prática de desenvolvimento de software onde os membros da equipe integram o trabalho deles frequentemente.
Martin Fowler

O termo Integração Contínua originou-se com o processo de desenvolvimento "Extreme Programming", e não é um conceito novo. Com esse processo faz-se a integração do projeto várias vezes ao dia, assegurando que ao final de cada uma o código permanecerá consistente. A Integração Contínua (IC) traz muitas vantagens no processo de desenvolvimento de software, entre elas podemos citar:
  1. Fácil correção de "bugs", já que sempre o programa está sendo atualizado os erros tornam-se menos trabalhosos de serem corrigidos, mas isso não significa que os "bugs" são eliminados;
  2. Aumenta o trabalho em equipe, fazendo com que os programadores sintam-se mais responsáveis pelo software desenvolvido;
  3. Geração de sotware funcionando a qualquer momento que seja necessitado, afinal o mesmo está sendo sempre atualizado e verificado;
  4. Elimina a barreira entre cliente e desenvolvedor, fazendo com que o cliente interaja mais com a equipe que desenvolveu o programa, dando dicas de melhorias nas "features" que são disponibilizadas a ele.
Como praticar a IC no meu ambiente de trabalho? Talvez seja essa a sua curiosidade, vou enumerar alguns passos importantes:
Sistema de Controle de Versão

Pode parecer bobagem, mas muitos projetos ainda hoje não usam sistema de controle de versão.
É importante ter um repositório onde o projeto esteja sempre atualizado, onde o desenvolvedor tenha tudo o que for necessário para deixar o projeto rodando no seu ambiente de trabalho, não somente o código, mas os scripts de testes, o esquema de banco de dados, os scripts de instalação etc. Isso deve estar ao alcance de todos e ser de fácil acesso, fica simples quando você usa um sistema de controle de versão como o Subversion, por exemplo.

Ambiente sempre sincronizado

O desenvolvedor deve deixar o seu ambiente de trabalho sempre atualizado com o repositório do projeto, com essa prática todos os desenvolvedores ficam sabendo o que foi desenvolvido.
Primeiro deve-se atualizar o projeto no seu ambiente de trabalho e resolver algum conflito que possa aparecer e depois que isso tenha sido feito é que pode-se atualizar o repositório com as suas atualizações. A resolução dos conflitos que possam aparecer ficam rápidas porque o projeto está sendo sempre atualizado e os "bugs" são logo detectados.

Workspace de desenvolvimento padrão

O ambiente de desenvolvimento entre os desenvolvedores tem que ser padronizado e ser o mais parecido com o ambiente de produção quanto possível, evitando assim algum erro que possa acontecer numa apresentação ao cliente, por exemplo, ou mesmo algum conflito de código em diferentes ambientes de trabalho. Use o mesmo banco de dados, as mesmas versões de software e o mesmo sistema operacional.

Todos podem ver o que está acontecendo

Se você usar um servidor de IC, como o CruiseControl, fica fácil de ver as mudanças no projeto através de um página web que é disponibilizada pelo servidor, isso até facilita a comunicação entre desenvolvedores que não trabalham na mesma sala. Quando ocorre mudanças no projeto o CruiseControl faz checkout, executa todos os testes automaticamente e se houver algum erro de compilação é enviado um e-mail ao responsável pelo problema.

O que achou? Para mim parece o ambiente de trabalho perfeito. Aqui há um passo-a-passo de como fazer um ambiente onde seja utilizado IC.


Abaixo uma breve apresentação que eu e a Lucimara fizemos: