SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Campus Party Brasil’2010
                                         #cpartybr




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

        Fabiane Bizinella Nardon
           fabiane@tridedalo.com.br
         JavaTools Community Leader
Objetivo




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



                                       G
Integração contínua e Hudson           E
                                       E
Instalação e configuração
                                       K
Usando plugins
                                       L
Como criar novos plugins
                                       E
Integrando o Hudson com o ambiente     V
                                       E
Conectando com dispositivos externos   L
Integração Contínua



                        Repositório de
                           Código




                                                    Cópia
Cópia




               Modificação




                                     Modificação
        4 horas depois…           40 dias depois…
Integração Contínua



                        Repositório de
                           Código




                                                    Cópia
Cópia




               Modificação




                                     Modificação
               “Integration Hell”
        4 horas depois…           40 dias depois…
Integração Contínua




               Repositório de
                  Código                              Build
                                                  Automatizada




                                         Cópia
Cópia


        Modificação




                           Modificação




• Todos commitam todo dia
• Todo commit deve ser “buildável”                  Artefatos
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




    decompressor this picture. ᆰ and
   QuickTimeᆰ and a decompressor a
                   QuickTime
are needed to see needed to see this picture.
                are



                                                  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
Coding
  Dojo
SunSPOT
    5ª-
   feira
   14:00

#codingdojo   #spaughts   #cpartybr
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
Campus Party Brasil’2010
                  #cpartybr




 Fabiane Bizinella Nardon
          fabiane@tridedalo.com.br
       JavaTools Community Leader
http://www.tridedalo.com.br/fabiane

Mais conteúdo relacionado

Mais de Campus Party Brasil

A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solarCampus Party Brasil
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custoCampus Party Brasil
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresCampus Party Brasil
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXCampus Party Brasil
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreCampus Party Brasil
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito ImpressoCampus Party Brasil
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasCampus Party Brasil
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelCampus Party Brasil
 
Desenvolvendo para iOS com Cocoa-Touch
Desenvolvendo para iOS com Cocoa-TouchDesenvolvendo para iOS com Cocoa-Touch
Desenvolvendo para iOS com Cocoa-TouchCampus Party Brasil
 

Mais de Campus Party Brasil (20)

A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solar
 
Passeio virtual pelo LHC
Passeio virtual pelo LHCPasseio virtual pelo LHC
Passeio virtual pelo LHC
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custo
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusiva
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectX
 
Blue Via
Blue ViaBlue Via
Blue Via
 
Linux para iniciantes
Linux para iniciantesLinux para iniciantes
Linux para iniciantes
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusiva
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software Livre
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito Impresso
 
Vida de Programador
Vida de Programador Vida de Programador
Vida de Programador
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendencias
 
Desafio Robótica Livre
Desafio Robótica LivreDesafio Robótica Livre
Desafio Robótica Livre
 
OpenKinect, o Kinect para todos
OpenKinect, o Kinect para todosOpenKinect, o Kinect para todos
OpenKinect, o Kinect para todos
 
Terapia ocupacional com games
Terapia ocupacional com gamesTerapia ocupacional com games
Terapia ocupacional com games
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
Introdução ao Drupal
Introdução ao DrupalIntrodução ao Drupal
Introdução ao Drupal
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro Inevitável
 
Desenvolvendo para iOS com Cocoa-Touch
Desenvolvendo para iOS com Cocoa-TouchDesenvolvendo para iOS com Cocoa-Touch
Desenvolvendo para iOS com Cocoa-Touch
 

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

  • 1. Campus Party Brasil’2010 #cpartybr Integração contínua com Hudson - Configuração, Extensão e Diversão! Fabiane Bizinella Nardon fabiane@tridedalo.com.br JavaTools Community Leader
  • 2. Objetivo Mostrar como você pode implantar integração contínua usando o Hudson e como customizá-lo para atender as suas necessidades
  • 3. Agenda G Integração contínua e Hudson E E Instalação e configuração K Usando plugins L Como criar novos plugins E Integrando o Hudson com o ambiente V E Conectando com dispositivos externos L
  • 4. Integração Contínua Repositório de Código Cópia Cópia Modificação Modificação 4 horas depois… 40 dias depois…
  • 5. Integração Contínua Repositório de Código Cópia Cópia Modificação Modificação “Integration Hell” 4 horas depois… 40 dias depois…
  • 6. Integração Contínua Repositório de Código Build Automatizada Cópia Cópia Modificação Modificação • Todos commitam todo dia • Todo commit deve ser “buildável” Artefatos
  • 7. 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/
  • 8. 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
  • 9. 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
  • 10. 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!
  • 11. 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
  • 12. Configurando o Hudson 4. Crie suas tarefas!
  • 13. Plugins O Hudson possui uma série de plugins que podem ser instalados, aumentando a sua funcionalidade
  • 14. 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
  • 15. 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
  • 16. Extreme Feedback decompressor this picture. ᆰ and QuickTimeᆰ and a decompressor a QuickTime are needed to see needed to see this picture. are QuickTimeᆰ and a decompressor are needed to see this picture. QuickTimeᆰ and a decompressor are needed to see this picture.
  • 17. 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
  • 18. 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
  • 19. Coding Dojo SunSPOT 5ª- feira 14:00 #codingdojo #spaughts #cpartybr
  • 20. 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
  • 21. Campus Party Brasil’2010 #cpartybr Fabiane Bizinella Nardon fabiane@tridedalo.com.br JavaTools Community Leader http://www.tridedalo.com.br/fabiane