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

28
Integração Contínua com o Hudson para Aplicações .NET Bruno Lopes http://netpont o.org 9ª Reunião Presencial - 24/04/2010

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

Transcript of Integração Contínua com o Hudson para Aplicações .NET

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