Transcript
Page 1: 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

Page 2: Integração Contínua com o Hudson para Aplicações .NET

Bruno Lopes

1980 1985 1990 1995 2000 2005 2010

Chart Title

Page 3: Integração Contínua com o Hudson para Aplicações .NET

Integração Contínua

Page 4: Integração Contínua com o Hudson para Aplicações .NET
Page 5: Integração Contínua com o Hudson para Aplicações .NET

Agenda• O que é Integração Contínua (IC)• Hudson• Demo• Boas Práticas• Próximos Passos

Page 6: Integração Contínua com o Hudson para Aplicações .NET

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

Page 7: Integração Contínua com o Hudson para Aplicações .NET

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

Page 8: Integração Contínua com o Hudson para Aplicações .NET

Implementações de servidores de IC

Open Source / Free

Scheduled Tasks

Hudson

CruiseControl.Net

Comerciais

TeamCity Cruise

TFS

Page 9: Integração Contínua com o Hudson para Aplicações .NET

O que é Hudson• Servidor de IC• Feito em Java• Simples• Extensível• Configuração via web– Mas com suporte para linha de comandos

Page 10: Integração Contínua com o Hudson para Aplicações .NET

Exemplos de SCM suportados• TFS• SVN• Git• Mercurial• Visual SourceSafe• ClearCase

Page 11: Integração Contínua com o Hudson para Aplicações .NET

Build scripts• Batchfiles• Powershell– Psake

• MSBuild• NAnt• Rake• Scons• FinalBuilder

Page 12: Integração Contínua com o Hudson para Aplicações .NET

Plugins Hudson

Page 13: Integração Contínua com o Hudson para Aplicações .NET

Como Começar• 1 PC (ou VM)• 1 Project.sln• 1 Hudson• 1 Source Control System

Page 14: Integração Contínua com o Hudson para Aplicações .NET

Hudson + Visual SourceSafe

demonstração

Page 15: Integração Contínua com o Hudson para Aplicações .NET

Material Usado• Windows Server 2003 SP5• .NET Framework 3.5 SP1• Project.sln• Hudson• Visual SourceSafe• Windows SDK• Java Runtime Environment

Page 16: Integração Contínua com o Hudson para Aplicações .NET

Hudson + Visual Source Safe (VSS)

Page 17: Integração Contínua com o Hudson para Aplicações .NET

Hudson + Subversion

demonstração

Page 18: Integração Contínua com o Hudson para Aplicações .NET

Hudson + Subversion (SVN)

Page 19: Integração Contínua com o Hudson para Aplicações .NET

Boas Práticas• Não deixar builds quebradas• Toda equipa responsável pelo build process• Information Radiator• Manter build rápida

Page 20: Integração Contínua com o Hudson para Aplicações .NET
Page 21: Integração Contínua com o Hudson para Aplicações .NET

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

Page 22: Integração Contínua com o Hudson para Aplicações .NET

Aprendizagens Pessoais• IC é tanto uma prática técnica como social• Email on fail, not on success

Page 23: Integração Contínua com o Hudson para Aplicações .NET

Próximos Passos• Process– Phased build– Continuous Deployment– Build slaves

• Build– Run tests– Deploy database– Test coverage

Page 24: Integração Contínua com o Hudson para Aplicações .NET

Questões?

Page 27: Integração Contínua com o Hudson para Aplicações .NET

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! :)

Page 28: Integração Contínua com o Hudson para Aplicações .NET

Obrigado!

Bruno [email protected]://www.brunomlopes.comhttp://twitter.com/brunomlopes


Top Related