Integração Contínua

galera precisa fazer um programa que frequentemente:
? Baixe um código fonte do SVN;
? Crie o build do sistema;
? Rode os testes unitários;
? Imprima o resultado em algum lugar. Devem ser informados:
» Todos desenvolvedores que fizeram commit no código
desde a última execução deste procedimento (para este
código fonte);
» Resultados da compilação do build do sistema;
» Resultados dos testes executados;
? Salve as informações geradas no repositório do projeto no SVN.

alguem pode me dar uma luz

Cara,

vc pode utilizar o Maven juntamente com o um framework de teste unitário (Junit ou TestNG), para
gerenciar os builds diários vc pode utilizar o Hudson.

um abraço!

Boa dica…o Marven faz quase tudo isso que vc citou aí em cima

Ah! Dê uma olhada com carinho no Gradle também. É uma boa alternativa ao Maven.

Se estiver disposto a pagar pela integração contínua, recomendo o TeamCity, da JetBrains, que é muito bom também.

Atualmente eu uso a dupla Maven + Hudson e pretendo migrar do Maven para o Gradle assim que possível (a falta de tempo me atrapalha um bocado).

Se você tem intimidade com o Ant dá para fazer isso com Ant puro e shell. :smiley:

Intimidade perigosa essa! Eu fui um tarado de Ant e acho que nunca me recuperei completamente! :lol:

Eu gosto muito do CruiseControl e do Hudson.

[quote=esmiralha]Intimidade perigosa essa! Eu fui um tarado de Ant e acho que nunca me recuperei completamente! :lol:

Eu gosto muito do CruiseControl e do Hudson.[/quote]

Mas fala ai,
Dependendo de como estiver a estrutura dos projetos dele, ele poderiria fazer o seguinte:

Usar a library do ant para o svn (http://ant.apache.org/antlibs/svn/ , http://java.dzone.com/articles/how-use-svn-tasks-with-ant, http://subclipse.tigris.org/svnant/svn.html)
para baixar os projetos e descobrir quem alterou por ultimo.

Compilar e Rodar os testes unitários.

Gerar os relatórios web ou texto utilizanto o Emma(http://emma.sourceforge.net/) , Cobertura(http://cobertura.sourceforge.net/) e a propria task do ant. (http://ant.apache.org/manual/Tasks/junitreport.html)

Adicionar o target que faz tudo isso no Cron de uma máquina, para executar de tempos em tempos e enviar e-mails de alerta com o send-mail.

O target serial algo do tipo:

    <target name="ci-generate-all-reports"
                     depends="init,svn-checkout,compile,compile-test,-pre-test-run,cobertura-instrument,
                                      -do-test-run,generate-cobertura-reports,generate-junit-reports,svn-commit-reports"/>

:smiley:

PS: Esses targets você até poderia aproveitar em vários projetos ou integrar com uma dessas ferramentas ai citadas.
PS2: A infra-estrutura nescessária para fazer isso também é bem pequena.

essas ferramentas são compatíveis com o eclipse?, além disso preciso seguir o padrão MVC