integração contínua com hudson - configuração, extensão e diversão!
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
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
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
Para mais informação
Hudson
– https://hudson.dev.java.net/
– http://wiki.hudson-ci.org/display/HUDSON/Use+Hudson
Sun Spots
– http://www.sunspotworld.com/
JavaTools
– http://community.java.net/javatools/
– http://twitter.com/javatools
Fabiane Bizinella [email protected]
JavaTools Community Leaderhttp://www.tridedalo.com.br/fabiane
Campus Party Brasil’2010#cpartybr