integração contínua com o jenkins para aplicações .net

32
Integração Contínua com o Hudson Jenkins para Aplicações .NET Bruno Lopes http://netpont o.org Reunião Presencial - 12/02/2011

Upload: comunidade-netponto

Post on 13-Dec-2014

4.155 views

Category:

Technology


1 download

DESCRIPTION

Integração Contínua com o Jenkins para Aplicações .NET por Bruno Lopes

TRANSCRIPT

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

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

Bruno Lopes

http://netponto.orgReunião Presencial - 12/02/2011

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

Patrocinador desta reunião

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

Bruno Lopes

1980 1985 1990 1995 2000 2005 2010

Chart Title

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

Integração Contínua

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

Agenda

• O que é Integração Contínua (IC)• Jenkins• Demo• Boas práticas• Passos seguintes

Page 10: Integração Contínua com o Jenkins 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 11: Integração Contínua com o Jenkins 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 12: Integração Contínua com o Jenkins para Aplicações .NET

Implementações de servidores de IC

Open Source / Free

Scheduled Tasks Jenkins

CruiseControl.Net

Comerciais

TeamCity Cruise

TFS

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

O que é Jenkins

• Servidor de IC• Feito em java• Simples• Extensível• Configuração via web– Mas com suporte para linha de comandos

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

Exemplos de SCM suportados

• SVN• Git• Mercurial• SourceSafe• ClearCase

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

Build scripts

• Batchfiles• Powershell– Psake

• MSBuild• NAnt• Rake• Scons• FinalBuilder

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

Plugins Hudson – 1 Ano Atrás

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

Plugins Jenkins – Esta semana

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

Como Começar

• 1 PC (ou VM)• 1 Project.sln• 1 Jenkins• 1 Source Control System

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

Jenkins + SVN

demonstração

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

Material Usado

• Windows Server 2003• Project.sln• Jenkins• Slik-SVN• Windows SDK 6.1• Java Runtime Environment• notepad2

Page 21: Integração Contínua com o Jenkins para Aplicações .NET
Page 22: Integração Contínua com o Jenkins 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 23: Integração Contínua com o Jenkins para Aplicações .NET
Page 24: Integração Contínua com o Jenkins para Aplicações .NET

Gráficos “de borla”

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

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

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

Aprendizagens pessoais

• IC é tanto uma prática técnica como social• Email on fail, not on success• Do it early

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

Próximos Passos

• Process– Phased build– Continuous Deployment– Build slaves

• Build– Run tests– Deploy database– Test coverage

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

Questões?

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

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/

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

Patrocinador desta reunião

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

Obrigado!

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