Integração Contínua com o Hudson para Aplicações .NET
-
Upload
comunidade-netponto -
Category
Technology
-
view
4.006 -
download
3
description
Transcript of Integração Contínua com o Hudson para Aplicações .NET
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