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

Preview:

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!

Citation preview

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

Diversão!

Fabiane Bizinella Nardonfabiane@tridedalo.com.br

JavaTools Community Leader

Campus Party Brasil’2010#cpartybr

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

Objetivo

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

Integração Contínua

Repositório deCódigo

Cópia

Modific ação

Cópia

Modificação

4 horas depois… 40 dias depois…

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”

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”

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/

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

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

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!

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

Configurando o Hudson

4. Crie suas tarefas!

Plugins

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

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

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

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.

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

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

#codingdojo #spaughts #cpartybr #ubicomp #codingforfun

Coding DojoSunSPOT

5ª-feira14:00

Fabiane Bizinella Nardonfabiane@tridedalo.com.br

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

Campus Party Brasil’2010#cpartybr