Apresentação sobre Integração continua, que é a prática de regularmente integrar o código desenvolvido por uma equipa, tanto localmente em cada máquina de desenvolvimento, como automaticamente num ponto central. Com Hudson é possivel tirar partido das vantagens desta prática num ambiente .NET com o minimo de investimento inicial. Com apenas um ficheiro contendo todo o Hudson, uma solução de Visual Studio e um repositório de Subversion podemos montar uma versão simples de uma máquina de integração continua que monitoriza o repositório e compila a solução com as alterações que vão sendo gravadas. Boas práticas, vantagens e extensibilidade do Huson, possibilidades de evolução de integração continua, acabando numa demonstração de capacidades mais avançadas para resolver alguns pontos comuns de dor, na 9ª reunião presencial da comunidade NetPonto
5. Agenda O que é Integração Contínua (IC) Hudson Demo Boas Práticas Próximos Passos
6. O que é Integração Contínua (IC) “Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.” Martin Fowler
7. Típica arquitectura usado um servidor de IC Reports User 4 - Output 5.1 - Notify Failures Servidor IC Install Packages 1- Commit Source Control 5.2 - Deploy to 3 - Build and Test 2 - Poll for Changes Servers Build Scripts
19. Boas Práticas Não deixar builds quebradas Toda equipa responsável pelo build process Information Radiator Manter build rápida
20.
21. Passos comuns de um Build Script Limpardirectorias de output (garantir que se trabalha numa estrutura limpa) Actualizar/Construir base de dados Compilar código Correr testes automáticos Calcular coverage de testes automáticos Produzir relatórios Criar packages de instalação/actualização
27. Próximas reuniões presenciais 24/04/2010 - Abril 15/05/2010 - Maio 19/06/2010 - Junho 26/06/2010 - Junho (Porto?) 10/07/2010 - JulhoReserva estes dias na agenda! :)
28. Obrigado! Bruno Lopes brunomlopes@gmail.com http://www.brunomlopes.com http://twitter.com/brunomlopes
Notas del editor
Esta apresentação bebe do que leio sobre melhores práticas e da minha aprendizagem pessoalGostava de ouvir as vossas opiniões e práticas
Psake - http://code.google.com/p/psake/Rake - http://rake.rubyforge.org/Scons - http://www.scons.org/FinalBuilder - http://www.finalbuilder.com/ Este é tambem um servidor de IC
Ainda são alguns...Tem até plugins para nazbaztagArtifact Uploaders upload por scp, svn, reports htmlAuthentication and User Management Inclui AD, AuditsBuild Notifiers Email, Campfire, irc, google calendar, nabaztag, sounds, twitter, jabberBuild Reports MSTest, xUnit, warnings, nunitBuild Tools powershell, ruby, nant,
PC ou VM convem não ser a máquina de um dev (para evitar situações de “builds on my machine”)