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

Post on 22-Nov-2014

4.006 views 3 download

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

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?

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 Lopesbrunomlopes@gmail.comhttp://www.brunomlopes.comhttp://twitter.com/brunomlopes