SlideShare ist ein Scribd-Unternehmen logo
1 von 9
ROYAL FLUSH COM
CONTINUOUS INTEGRATION
    Júlio Monteiro <julio@monteiro.eti.br>
               12 de Setembro de 2009
QUEM SOU EU?


• Ruby   on Rails desde 2006

• Instrutor   de cursos e palestras sobre Ruby & Rails

• Arquiteto    de Software da Euax Gestão de Projetos
O QUE É CI?


• Metodologia   de desenvolvimento (enriquecedor)

• Build   automatizado

• Disparado   por commits no SCM (git, hg, bzr, svn & friends)
BUILD PERFEITA

• “Testar   testes” (RSpec, Cucumber?)

• Testar   deploy para plataformas-alvo (capistrano?)

• Verificar   sincronia com Banco de Dados (db:migrate?)

• Relatório   de métricas (metric_fu?)

• Gerar    documentação completa do software (RDoc?)

• Inspeção    de log (grep “warning” log/test.log?)
CI BUSCA REDUZIR:

• Correção   tardia de bugs (muito mais caro!)

• Confusão   interna no time (merge party)

• Código   de baixa qualidade (TAFT)

• Visibilidade   sobre o código

• Deployment      (“mas funciona na minha máquina”)
COM CI VOCÊ SEMPRE PODE...




     Culpar alguém!
CI VERSUS NB


     Nightly Builds é periódica,
       geralmente pela noite.

Continuous Integration é on-demand,
     teoricamente a cada commit.
FERRAMENTAS DE CI (1/2)

       • RunCodeRun         (Hosted)

       • Hudson    (Java)

       • CruiseControl      (Java)

       • CruiseControl.NET       (.Net)

       • Cruise   (“Enterprise”)
FERRAMENTAS DE CI (2/2)

       • CruiseControl.rb

       • Cerberus

       • Integrity

       • C.I. Joe

       • Git   hooks

Weitere ähnliche Inhalte

Mehr von Julio Monteiro

Por que Ruby on Rails?
Por que Ruby on Rails?Por que Ruby on Rails?
Por que Ruby on Rails?
Julio Monteiro
 

Mehr von Julio Monteiro (14)

Por que Ruby on Rails?
Por que Ruby on Rails?Por que Ruby on Rails?
Por que Ruby on Rails?
 
MongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documentoMongoDB: um banco de dados orientado a documento
MongoDB: um banco de dados orientado a documento
 
Como criar e lançar um e-commerce em 42 minutos
Como criar e lançar um e-commerce em 42 minutosComo criar e lançar um e-commerce em 42 minutos
Como criar e lançar um e-commerce em 42 minutos
 
MongoDB
MongoDBMongoDB
MongoDB
 
Desenvolvimento Web com Rails
Desenvolvimento Web com RailsDesenvolvimento Web com Rails
Desenvolvimento Web com Rails
 
Segurança & Ruby on Rails
Segurança & Ruby on RailsSegurança & Ruby on Rails
Segurança & Ruby on Rails
 
Como colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHubComo colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHub
 
Como criar e lançar um site em 42 minutos
Como criar e lançar um site em 42 minutosComo criar e lançar um site em 42 minutos
Como criar e lançar um site em 42 minutos
 
Ubuntu Enterprise Cloud
Ubuntu Enterprise CloudUbuntu Enterprise Cloud
Ubuntu Enterprise Cloud
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
 
Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)Introdução ao Ruby on Rails (SOCIESC)
Introdução ao Ruby on Rails (SOCIESC)
 
Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)Introdução ao Ruby on Rails (InstallFest 2006)
Introdução ao Ruby on Rails (InstallFest 2006)
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o Mercado
 
Ruby, Rails e Diversão
Ruby, Rails e DiversãoRuby, Rails e Diversão
Ruby, Rails e Diversão
 

Royal Flush com Continuous Integration (Rails for Kids '09)

  • 1. ROYAL FLUSH COM CONTINUOUS INTEGRATION Júlio Monteiro <julio@monteiro.eti.br> 12 de Setembro de 2009
  • 2. QUEM SOU EU? • Ruby on Rails desde 2006 • Instrutor de cursos e palestras sobre Ruby & Rails • Arquiteto de Software da Euax Gestão de Projetos
  • 3. O QUE É CI? • Metodologia de desenvolvimento (enriquecedor) • Build automatizado • Disparado por commits no SCM (git, hg, bzr, svn & friends)
  • 4. BUILD PERFEITA • “Testar testes” (RSpec, Cucumber?) • Testar deploy para plataformas-alvo (capistrano?) • Verificar sincronia com Banco de Dados (db:migrate?) • Relatório de métricas (metric_fu?) • Gerar documentação completa do software (RDoc?) • Inspeção de log (grep “warning” log/test.log?)
  • 5. CI BUSCA REDUZIR: • Correção tardia de bugs (muito mais caro!) • Confusão interna no time (merge party) • Código de baixa qualidade (TAFT) • Visibilidade sobre o código • Deployment (“mas funciona na minha máquina”)
  • 6. COM CI VOCÊ SEMPRE PODE... Culpar alguém!
  • 7. CI VERSUS NB Nightly Builds é periódica, geralmente pela noite. Continuous Integration é on-demand, teoricamente a cada commit.
  • 8. FERRAMENTAS DE CI (1/2) • RunCodeRun (Hosted) • Hudson (Java) • CruiseControl (Java) • CruiseControl.NET (.Net) • Cruise (“Enterprise”)
  • 9. FERRAMENTAS DE CI (2/2) • CruiseControl.rb • Cerberus • Integrity • C.I. Joe • Git hooks