Upload
comunidade-netponto
View
4.008
Download
3
Embed Size (px)
DESCRIPTION
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
Citation preview
Integração Contínua com o Hudson para Aplicações .NET
Bruno Lopes
http://netponto.org9ª Reunião Presencial - 24/04/2010
Bruno Lopes
1980 1985 1990 1995 2000 2005 2010
Chart Title
Integração Contínua
Agenda• O que é Integração Contínua (IC)• Hudson• Demo• Boas Práticas• Próximos Passos
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
Típica arquitectura usado um servidor de IC
Source Control
Servidor IC
Build Scripts
User
1- Commit
2 - Poll forChanges
Reports4 - Output5.1 - Notify Failures
Install Packages
Servers
5.2 - Deploy to3 - Build and Test
Implementações de servidores de IC
Open Source / Free
Scheduled Tasks
Hudson
CruiseControl.Net
Comerciais
TeamCity Cruise
TFS
O que é Hudson• Servidor de IC• Feito em Java• Simples• Extensível• Configuração via web– Mas com suporte para linha de comandos
Exemplos de SCM suportados• TFS• SVN• Git• Mercurial• Visual SourceSafe• ClearCase
Build scripts• Batchfiles• Powershell– Psake
• MSBuild• NAnt• Rake• Scons• FinalBuilder
Plugins Hudson
Como Começar• 1 PC (ou VM)• 1 Project.sln• 1 Hudson• 1 Source Control System
Hudson + Visual SourceSafe
demonstração
Material Usado• Windows Server 2003 SP5• .NET Framework 3.5 SP1• Project.sln• Hudson• Visual SourceSafe• Windows SDK• Java Runtime Environment
Hudson + Visual Source Safe (VSS)
Hudson + Subversion
demonstração
Hudson + Subversion (SVN)
Boas Práticas• Não deixar builds quebradas• Toda equipa responsável pelo build process• Information Radiator• Manter build rápida
Passos comuns de um Build Script• Limpar directorias 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
Aprendizagens Pessoais• IC é tanto uma prática técnica como social• Email on fail, not on success
Próximos Passos• Process– Phased build– Continuous Deployment– Build slaves
• Build– Run tests– Deploy database– Test coverage
Questões?
ReferênciasHudson
– http://hudson-ci.org/– http://blog.hudson-ci.org/
SlikSvn– http://www.sliksvn.com/en/download
Continuous Integration, Martin Fowler– http://martinfowler.com/articles/continuousIntegration.html
Continuous Deployment at IMVU– http://timothyfitz.wordpress.com/2009/02/08/continuous-deployment/– http://
timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/
Patrocinadores desta reunião
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 - Julho
Reserva estes dias na agenda! :)
Obrigado!
Bruno [email protected]://www.brunomlopes.comhttp://twitter.com/brunomlopes