integração contínua com hudson - configuração, extensão e diversão!

21
Integração contínua com Hudson - Configuração, Extensão e Diversão! Fabiane Bizinella Nardon [email protected] JavaTools Community Leader Campus Party Brasil’2010 #cpartybr

Upload: campus-party-brasil

Post on 19-Jun-2015

3.450 views

Category:

Technology


1 download

DESCRIPTION

Hudson permite a realizacao de sofisticados senarios de integracao continua, e essa palestra ira abordar como tudo isso pode ser integrado no seu projeto e na sua empresa, inclusive mostrando como tornar os desenvolvedores mais produtivos com processos profissionais mas muito divertidos!

TRANSCRIPT

Page 1: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Integração contínua com Hudson - Configuração, Extensão e

Diversão!

Fabiane Bizinella [email protected]

JavaTools Community Leader

Campus Party Brasil’2010#cpartybr

Page 2: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Mostrar como você pode implantar integração contínua usando o Hudson e como customizá-lo para atender as suas necessidades

Objetivo

Page 3: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Agenda

Integração contínua e Hudson

Instalação e configuração

Usando plugins

Como criar novos plugins

Integrando o Hudson com o ambiente

Conectando com dispositivos externos

GEEK LEVEL

Page 4: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Integração Contínua

Repositório deCódigo

Cópia

Modific ação

Cópia

Modificação

4 horas depois… 40 dias depois…

Page 5: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Integração Contínua

Repositório deCódigo

Cópia

Modific ação

Cópia

Modificação

4 horas depois… 40 dias depois…

“Integration Hell”

Page 6: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Integração Contínua

Repositório deCódigo

Cópia

Modificação

Cópia

Modificação

BuildAutomatizada

Artefatos• Todos commitam todo dia• Todo commit deve ser “buildável”

Page 7: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Hudson

Ferramenta Open Source (Licença MIT) para automatização de builds

Permite tanto fazer construções de projetos quanto monitorar jobs executados externamente (via cron, por exemplo)

Possui fácil instalação e configuração, além de integração com diversas ferramentas como Maven, Jira, etc

Possui diversos plugins criados por desenvolvedores e novos plugins podem ser facilmente criados

Possui boa documentação e diversos exemplos

https://hudson.dev.java.net/

Page 8: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Instalando o Hudson

Forma rápida:

1. Faça download do war do Hudson

2. Executar java -jar hudson.war (executa com o Winstone)

Forma menos rápida:

1. Faça download do war do Hudson

2. Instale no seu container (JBoss, Tomcat, etc).

3. A instalação é feita como a instalação de uma aplicação web normal, seguindo as diferenças para cada container

Page 9: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Configurando o Hudson

1. Crie uma variável HUDSON_HOME

Por default o home é ~/.hudson, mas é altamente aconselhável setar o HUDSON_HOME para um diretório controlado. É deste diretório que você precisa fazer backups para restaurar o seu Hudson

Diretórios importantes:

plugins: contém os plugins instalados

jobs: contém a configuração e artefatos de cada job do hudson

jobs/<JOB>/workspace: é onde o Hudson coloca o código fonte recuperado para o job

job/<JOB>/builds: resultado das builds

Page 10: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Configurando o Hudson

2. Habilite a segurança

O Hudson suporta diversos tipos de segurança: um banco de dados próprio, LDAP, etc. Escolha a melhor opção para você, mas escolha uma!

Page 11: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Configurando o Hudson

3. Configure as suas ferramentas externas

O Hudson pode ser integrado com Subversion, CVS, Maven, Ant…

Configure também o envio de emails

Page 12: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Configurando o Hudson

4. Crie suas tarefas!

Page 13: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Plugins

O Hudson possui uma série de plugins que podem ser instalados, aumentando a sua funcionalidade

Page 14: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Criando Plugins

Para criar plugins para o Hudson, é recomendado que você use o Maven:

1. Configure o seu settings.xml conforme as instruções no site do Hudson

2. Execute mvn hpi:create

3. Crie uma classe que seja subclasse da classe do ponto de extensão que você precisa (Veja pontos de extensão disponíveis em http://wiki.hudson-ci.org/display/HUDSON/Extension+points )

4. Empacote executando mvn package

5. Instale

Page 15: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Integrando o Hudson com o ambiente

O Hudson pode ser uma excelente ferramenta para aumentar a produtividade e tornar o ambiente de trabalho mais divertido

Exemplos:

- O Hudson envia emails para todos que participaram de uma build quando a build quebra: maior participação da equipe na solução

- Você pode implantar um Continuous Integration Game

- Tente instalar dispositivos de Extreme Feedback

Page 16: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Extreme Feedback

QuickTime and aᆰ decompressorare needed to see this picture.QuickTime and aᆰ decompressorare needed to see this picture.

QuickTime and aᆰ decompressor

are needed to see this picture.

QuickTime and aᆰ decompressor

are needed to see this picture.

Page 17: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Integrando com dispositivos externos

A melhor forma de integrar o Hudson com um dispositivo externo é através de suas saídas RSS

Simplesmente leia o arquivo RSS de tempo em tempo e gere a saída necessária

Page 18: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Integrando com Sun Spots

Sun Spot se comunica com a base e lê o RSS do Hudson

Se alguma build falhou, mostra os leds em vermelho

Se todas as builds estão ok, mostra os leds em azul

A programação é feita em JavaME

Page 19: Integração contínua com Hudson - Configuração, Extensão e Diversão!

#codingdojo #spaughts #cpartybr #ubicomp #codingforfun

Coding DojoSunSPOT

5ª-feira14:00

Page 21: Integração contínua com Hudson - Configuração, Extensão e Diversão!

Fabiane Bizinella [email protected]

JavaTools Community Leaderhttp://www.tridedalo.com.br/fabiane

Campus Party Brasil’2010#cpartybr