integração contínua com o jenkins para aplicações .net
DESCRIPTION
Integração Contínua com o Jenkins para Aplicações .NET por Bruno LopesTRANSCRIPT
Integração Contínua com o HudsonJenkins para Aplicações .NET
Bruno Lopes
http://netponto.orgReunião Presencial - 12/02/2011
Patrocinador desta reunião
Bruno Lopes
1980 1985 1990 1995 2000 2005 2010
Chart Title
Integração Contínua
Agenda
• O que é Integração Contínua (IC)• Jenkins• Demo• Boas práticas• Passos seguintes
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 Jenkins
CruiseControl.Net
Comerciais
TeamCity Cruise
TFS
O que é Jenkins
• Servidor de IC• Feito em java• Simples• Extensível• Configuração via web– Mas com suporte para linha de comandos
Exemplos de SCM suportados
• SVN• Git• Mercurial• SourceSafe• ClearCase
Build scripts
• Batchfiles• Powershell– Psake
• MSBuild• NAnt• Rake• Scons• FinalBuilder
Plugins Hudson – 1 Ano Atrás
Plugins Jenkins – Esta semana
Como Começar
• 1 PC (ou VM)• 1 Project.sln• 1 Jenkins• 1 Source Control System
Jenkins + SVN
demonstração
Material Usado
• Windows Server 2003• Project.sln• Jenkins• Slik-SVN• Windows SDK 6.1• Java Runtime Environment• notepad2
Boas práticas
• Não deixar builds quebradas• Toda equipa responsável pelo build process• Information Radiator• Manter build rápida
Gráficos “de borla”
Passos 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• Do it early
Próximos Passos
• Process– Phased build– Continuous Deployment– Build slaves
• Build– Run tests– Deploy database– Test coverage
Questões?
ReferênciasJenkins
– http://Jenkins-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/
Patrocinador desta reunião
Obrigado!
Bruno [email protected]://www.brunomlopes.comhttp://twitter.com/brunomlopes