SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
Integração Contínua
                              Hudson CI



 Almir M3nd3s                                            Francisco Souza
 @m3nd3s                                                @franciscosouza
 almirmendes.com                                     franciscosouza.com


http://www.fickr.com/photos/heartheart/4027420686/
Quem é Hudson?
O que ele faz?




           http://www.fickr.com/photos/jed_fsh/4956357898/
Por que
usamos o
Hudson?

           http://www.fickr.com/photos/abbot45/187640227/
Passo 1 – A instalação
Passo 2 – Confgurando o ambiente
SSH Keys




PROJECT_SSHKEY=${HOME}/.ssh/${JOB_NAME}
http://www.fickr.com/photos/lorenjavier/3997921584/




Git hooks
Build remoto
$ git push



~ø~ o/
Ruby




http://www.fickr.com/photos/42429527@N03/5106694318/
RVM
Ruby Version Manager
http://www.flickr.com/photos/afternoon_sunlight/134987402/




rspec                           selenium
rspec-rails                     selenium-client
ci_reporter                     simplecov
capybara                        simplecov-rcov



          Gems
Rakefle
namespace :hudson do
  task :spec => ["hudson:setup:rspec", 'db:migrate',
'rake:spec']

  namespace :setup do
    task :pre_ci do
      ENV["CI_REPORTS"] = 'hudson/reports/spec/'
      gem 'ci_reporter'
      require 'ci/reporter/rake/rspec'
    end
    task :rspec => [:pre_ci, "ci:setup:rspec"]
  end
end
rvm use 1.9.2 && bundle install &&
 rake db:migrate db:test:prepare
    default && rake hudson:spec
Python




http://www.fickr.com/photos/michaelransburg/4587694386/
$ make build



      http://www.fickr.com/photos/arenamontanus/2605742044/
nose


http://www.fickr.com/photos/expressmonorail/2695634651/
$ nosetests --nocapture --verbose
      --where=tests –with-coverage
   --cover-package=giran –with-xunit
      --with-gae --gae-application=.


  $ coverage xml –rcfle=.coveragerc



$ pep8 giran | sed 's/: /: [W] /' > pep8.txt
$ nosetests --nocapture --verbose
      --where=tests –with-coverage
   --cover-package=giran –with-xunit
      --with-gae --gae-application=.


  $ coverage xml –rcfle=.coveragerc

                      Que bonito!



$ pep8 giran | sed 's/: /: [W] /' > pep8.txt
Relatórios
Test Result Trend
Code Coverage
Violations Report
Build History
Notifcação de build
     quebrado




             http://www.fickr.com/photos/krisnfred/320075682/
E o galaxy?!
Obrigado!                       Hmm...
     hudson-ci.org             adequado!




Almir M3nd3s
@m3nd3s
almirmendes.com



             Francisco Souza
            @franciscosouza
         franciscosouza.com

Más contenido relacionado

La actualidad más candente

Cool usage of Encoding and Decoding a URI in Javascript
Cool usage of Encoding and Decoding a URI in JavascriptCool usage of Encoding and Decoding a URI in Javascript
Cool usage of Encoding and Decoding a URI in JavascriptIdeas2IT Technologies
 
Search and Replacement Techniques in Emacs: avy, swiper, multiple-cursor, ag,...
Search and Replacement Techniques in Emacs: avy, swiper, multiple-cursor, ag,...Search and Replacement Techniques in Emacs: avy, swiper, multiple-cursor, ag,...
Search and Replacement Techniques in Emacs: avy, swiper, multiple-cursor, ag,...Kazuki Yoshida
 
Varnish: Making eZ Publish sites fly
Varnish: Making eZ Publish sites flyVarnish: Making eZ Publish sites fly
Varnish: Making eZ Publish sites flyPeter Keung
 
Node js javascript no lado do servidor
Node js javascript no lado do servidorNode js javascript no lado do servidor
Node js javascript no lado do servidorMauricio Vieira
 
Office doc (10)
Office doc (10)Office doc (10)
Office doc (10)ly2wf
 
Simple php backdoor_by_dk
Simple php backdoor_by_dkSimple php backdoor_by_dk
Simple php backdoor_by_dkStan Adrian
 
Introduction to CouchDB
Introduction to CouchDBIntroduction to CouchDB
Introduction to CouchDBGavin Cooper
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scriptingdcarneir
 

La actualidad más candente (11)

Cool usage of Encoding and Decoding a URI in Javascript
Cool usage of Encoding and Decoding a URI in JavascriptCool usage of Encoding and Decoding a URI in Javascript
Cool usage of Encoding and Decoding a URI in Javascript
 
Search and Replacement Techniques in Emacs: avy, swiper, multiple-cursor, ag,...
Search and Replacement Techniques in Emacs: avy, swiper, multiple-cursor, ag,...Search and Replacement Techniques in Emacs: avy, swiper, multiple-cursor, ag,...
Search and Replacement Techniques in Emacs: avy, swiper, multiple-cursor, ag,...
 
Varnish: Making eZ Publish sites fly
Varnish: Making eZ Publish sites flyVarnish: Making eZ Publish sites fly
Varnish: Making eZ Publish sites fly
 
Gitkata refspec
Gitkata refspecGitkata refspec
Gitkata refspec
 
Node js javascript no lado do servidor
Node js javascript no lado do servidorNode js javascript no lado do servidor
Node js javascript no lado do servidor
 
Office doc (10)
Office doc (10)Office doc (10)
Office doc (10)
 
Simple php backdoor_by_dk
Simple php backdoor_by_dkSimple php backdoor_by_dk
Simple php backdoor_by_dk
 
Gregory
GregoryGregory
Gregory
 
Twistori Tech
Twistori TechTwistori Tech
Twistori Tech
 
Introduction to CouchDB
Introduction to CouchDBIntroduction to CouchDB
Introduction to CouchDB
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 

Destacado

Palestra de SED - Stream Editor
Palestra de SED - Stream EditorPalestra de SED - Stream Editor
Palestra de SED - Stream EditorAlmir Mendes
 
100625 cc jocelyn cunningham
100625 cc jocelyn cunningham100625 cc jocelyn cunningham
100625 cc jocelyn cunninghamclinton porter
 
MI-LIFE Opening Session at Oakland Schools
MI-LIFE Opening Session at Oakland SchoolsMI-LIFE Opening Session at Oakland Schools
MI-LIFE Opening Session at Oakland Schoolsmbamom
 
Shaspa Presentation
Shaspa PresentationShaspa Presentation
Shaspa PresentationOliver Goh
 
Advanc Ed Preso
Advanc Ed PresoAdvanc Ed Preso
Advanc Ed Presombamom
 
Arduino Project - Ciclo de palestras CEET Vasco Coutinho
Arduino Project - Ciclo de palestras CEET Vasco CoutinhoArduino Project - Ciclo de palestras CEET Vasco Coutinho
Arduino Project - Ciclo de palestras CEET Vasco CoutinhoAlmir Mendes
 
MI-LIFE School Improvement Conference Preso
MI-LIFE School Improvement Conference PresoMI-LIFE School Improvement Conference Preso
MI-LIFE School Improvement Conference Presombamom
 
COP-ESD
COP-ESDCOP-ESD
COP-ESDmbamom
 
Marygrove MAT Mentor Conference
Marygrove MAT Mentor ConferenceMarygrove MAT Mentor Conference
Marygrove MAT Mentor Conferencembamom
 
Arraiá Instituto Movere
Arraiá Instituto MovereArraiá Instituto Movere
Arraiá Instituto MovereIvo Junior
 
O Rei E Suas 4 Esposas
O Rei E Suas 4 EsposasO Rei E Suas 4 Esposas
O Rei E Suas 4 EsposasJ. C.
 
Joseth jonathann julian villamizar caceres
Joseth jonathann julian villamizar caceresJoseth jonathann julian villamizar caceres
Joseth jonathann julian villamizar caceresJoseth Villamizar
 
EXPERIENCIA SIGNIFICATIVA C.INF. JUAN XXIII 2010
EXPERIENCIA SIGNIFICATIVA C.INF. JUAN XXIII 2010EXPERIENCIA SIGNIFICATIVA C.INF. JUAN XXIII 2010
EXPERIENCIA SIGNIFICATIVA C.INF. JUAN XXIII 2010CORLATINA
 
Resultados, clasificaciones y programación liga municipal
Resultados, clasificaciones y programación liga municipalResultados, clasificaciones y programación liga municipal
Resultados, clasificaciones y programación liga municipalWeb Futbolaragones
 
Dropbox我们的创业经历(中文版)
Dropbox我们的创业经历(中文版)Dropbox我们的创业经历(中文版)
Dropbox我们的创业经历(中文版)Green2008
 
CMD1 - He's In The Trailer
CMD1 - He's In The TrailerCMD1 - He's In The Trailer
CMD1 - He's In The TrailerAngelo Vanmarcke
 

Destacado (20)

19thcenturypeople
19thcenturypeople19thcenturypeople
19thcenturypeople
 
Dicas de SSH
Dicas de SSHDicas de SSH
Dicas de SSH
 
Palestra de SED - Stream Editor
Palestra de SED - Stream EditorPalestra de SED - Stream Editor
Palestra de SED - Stream Editor
 
100625 cc jocelyn cunningham
100625 cc jocelyn cunningham100625 cc jocelyn cunningham
100625 cc jocelyn cunningham
 
MI-LIFE Opening Session at Oakland Schools
MI-LIFE Opening Session at Oakland SchoolsMI-LIFE Opening Session at Oakland Schools
MI-LIFE Opening Session at Oakland Schools
 
Shaspa Presentation
Shaspa PresentationShaspa Presentation
Shaspa Presentation
 
Advanc Ed Preso
Advanc Ed PresoAdvanc Ed Preso
Advanc Ed Preso
 
Arduino Project - Ciclo de palestras CEET Vasco Coutinho
Arduino Project - Ciclo de palestras CEET Vasco CoutinhoArduino Project - Ciclo de palestras CEET Vasco Coutinho
Arduino Project - Ciclo de palestras CEET Vasco Coutinho
 
MI-LIFE School Improvement Conference Preso
MI-LIFE School Improvement Conference PresoMI-LIFE School Improvement Conference Preso
MI-LIFE School Improvement Conference Preso
 
COP-ESD
COP-ESDCOP-ESD
COP-ESD
 
Marygrove MAT Mentor Conference
Marygrove MAT Mentor ConferenceMarygrove MAT Mentor Conference
Marygrove MAT Mentor Conference
 
Arduino Project
Arduino ProjectArduino Project
Arduino Project
 
Arraiá Instituto Movere
Arraiá Instituto MovereArraiá Instituto Movere
Arraiá Instituto Movere
 
O Rei E Suas 4 Esposas
O Rei E Suas 4 EsposasO Rei E Suas 4 Esposas
O Rei E Suas 4 Esposas
 
Joseth jonathann julian villamizar caceres
Joseth jonathann julian villamizar caceresJoseth jonathann julian villamizar caceres
Joseth jonathann julian villamizar caceres
 
EXPERIENCIA SIGNIFICATIVA C.INF. JUAN XXIII 2010
EXPERIENCIA SIGNIFICATIVA C.INF. JUAN XXIII 2010EXPERIENCIA SIGNIFICATIVA C.INF. JUAN XXIII 2010
EXPERIENCIA SIGNIFICATIVA C.INF. JUAN XXIII 2010
 
Resultados, clasificaciones y programación liga municipal
Resultados, clasificaciones y programación liga municipalResultados, clasificaciones y programación liga municipal
Resultados, clasificaciones y programación liga municipal
 
Dropbox我们的创业经历(中文版)
Dropbox我们的创业经历(中文版)Dropbox我们的创业经历(中文版)
Dropbox我们的创业经历(中文版)
 
Newswriting
NewswritingNewswriting
Newswriting
 
CMD1 - He's In The Trailer
CMD1 - He's In The TrailerCMD1 - He's In The Trailer
CMD1 - He's In The Trailer
 

Similar a Integração contínua com Hudson CI

Deploying Rails Applications with Capistrano
Deploying Rails Applications with CapistranoDeploying Rails Applications with Capistrano
Deploying Rails Applications with CapistranoAlmir Mendes
 
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistranonickblah
 
Love The Terminal
Love The TerminalLove The Terminal
Love The TerminalMike West
 
Learning the command line
Learning the command lineLearning the command line
Learning the command lineAdrian Cardenas
 
Cloud focker を試してみた public
Cloud focker を試してみた   publicCloud focker を試してみた   public
Cloud focker を試してみた publicTakehiko Amano
 
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @WayraDeis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @WayraLeo Lorieri
 
Automate Your FME Server Installs, Take a Five Minute Break
Automate Your FME Server Installs, Take a Five Minute BreakAutomate Your FME Server Installs, Take a Five Minute Break
Automate Your FME Server Installs, Take a Five Minute BreakSafe Software
 
Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]Dana Luther
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Ben Hall
 
Converting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaConverting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaDana Luther
 
Install tomcat 5.5 in debian os and deploy war file
Install tomcat 5.5 in debian os and deploy war fileInstall tomcat 5.5 in debian os and deploy war file
Install tomcat 5.5 in debian os and deploy war fileNguyen Cao Hung
 
Docker in Production: Reality, Not Hype
Docker in Production: Reality, Not HypeDocker in Production: Reality, Not Hype
Docker in Production: Reality, Not Hypebridgetkromhout
 
Beyond Golden Containers: Complementing Docker with Puppet
Beyond Golden Containers: Complementing Docker with PuppetBeyond Golden Containers: Complementing Docker with Puppet
Beyond Golden Containers: Complementing Docker with Puppetlutter
 
Buildout: Fostering Repeatability
Buildout: Fostering RepeatabilityBuildout: Fostering Repeatability
Buildout: Fostering RepeatabilityClayton Parker
 
ERP System Implementation Kubernetes Cluster with Sticky Sessions
ERP System Implementation Kubernetes Cluster with Sticky Sessions ERP System Implementation Kubernetes Cluster with Sticky Sessions
ERP System Implementation Kubernetes Cluster with Sticky Sessions Chanaka Lasantha
 
Redmine on amazon ec2
Redmine on amazon ec2Redmine on amazon ec2
Redmine on amazon ec2Ikuru Kanuma
 
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017Amazon Web Services Korea
 

Similar a Integração contínua com Hudson CI (20)

Deploying Rails Applications with Capistrano
Deploying Rails Applications with CapistranoDeploying Rails Applications with Capistrano
Deploying Rails Applications with Capistrano
 
NLIT 2011: Chef & Capistrano
NLIT 2011: Chef & CapistranoNLIT 2011: Chef & Capistrano
NLIT 2011: Chef & Capistrano
 
Love The Terminal
Love The TerminalLove The Terminal
Love The Terminal
 
Learning the command line
Learning the command lineLearning the command line
Learning the command line
 
Self revisor
Self revisorSelf revisor
Self revisor
 
Backups
BackupsBackups
Backups
 
Cloud focker を試してみた public
Cloud focker を試してみた   publicCloud focker を試してみた   public
Cloud focker を試してみた public
 
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @WayraDeis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
 
Automate Your FME Server Installs, Take a Five Minute Break
Automate Your FME Server Installs, Take a Five Minute BreakAutomate Your FME Server Installs, Take a Five Minute Break
Automate Your FME Server Installs, Take a Five Minute Break
 
Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
 
Converting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - CascadiaConverting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - Cascadia
 
Install tomcat 5.5 in debian os and deploy war file
Install tomcat 5.5 in debian os and deploy war fileInstall tomcat 5.5 in debian os and deploy war file
Install tomcat 5.5 in debian os and deploy war file
 
Docker in Production: Reality, Not Hype
Docker in Production: Reality, Not HypeDocker in Production: Reality, Not Hype
Docker in Production: Reality, Not Hype
 
Beyond Golden Containers: Complementing Docker with Puppet
Beyond Golden Containers: Complementing Docker with PuppetBeyond Golden Containers: Complementing Docker with Puppet
Beyond Golden Containers: Complementing Docker with Puppet
 
Buildout: Fostering Repeatability
Buildout: Fostering RepeatabilityBuildout: Fostering Repeatability
Buildout: Fostering Repeatability
 
vBACD - Introduction to Opscode Chef - 2/29
vBACD - Introduction to Opscode Chef - 2/29vBACD - Introduction to Opscode Chef - 2/29
vBACD - Introduction to Opscode Chef - 2/29
 
ERP System Implementation Kubernetes Cluster with Sticky Sessions
ERP System Implementation Kubernetes Cluster with Sticky Sessions ERP System Implementation Kubernetes Cluster with Sticky Sessions
ERP System Implementation Kubernetes Cluster with Sticky Sessions
 
Redmine on amazon ec2
Redmine on amazon ec2Redmine on amazon ec2
Redmine on amazon ec2
 
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
AWS와 Docker Swarm을 이용한 쉽고 빠른 컨테이너 오케스트레이션 - AWS Summit Seoul 2017
 

Más de Almir Mendes

Software Livre, que história é essa?
Software Livre, que história é essa?Software Livre, que história é essa?
Software Livre, que história é essa?Almir Mendes
 
[Rock'n Rails] Deploying Rails Applications with Capistrano
[Rock'n Rails] Deploying Rails Applications with Capistrano[Rock'n Rails] Deploying Rails Applications with Capistrano
[Rock'n Rails] Deploying Rails Applications with CapistranoAlmir Mendes
 
Projeto Arduino - Hardware para fazer coisas legais - FOCAI
Projeto Arduino - Hardware para fazer coisas legais - FOCAIProjeto Arduino - Hardware para fazer coisas legais - FOCAI
Projeto Arduino - Hardware para fazer coisas legais - FOCAIAlmir Mendes
 
Palestra "Do PHP ao Rails" - FOCAI
Palestra "Do PHP ao Rails" - FOCAIPalestra "Do PHP ao Rails" - FOCAI
Palestra "Do PHP ao Rails" - FOCAIAlmir Mendes
 
Palestra "Do PHP ao Rails"
Palestra "Do PHP ao Rails"Palestra "Do PHP ao Rails"
Palestra "Do PHP ao Rails"Almir Mendes
 
Arduino Project :: Giran Siege
Arduino Project :: Giran SiegeArduino Project :: Giran Siege
Arduino Project :: Giran SiegeAlmir Mendes
 
Palestra sobre AWK [Giran Siege]
Palestra sobre AWK [Giran Siege]Palestra sobre AWK [Giran Siege]
Palestra sobre AWK [Giran Siege]Almir Mendes
 
Distribuições Linux
Distribuições LinuxDistribuições Linux
Distribuições LinuxAlmir Mendes
 
Entendendo como fazer um firewall pessoal
Entendendo como fazer um firewall pessoalEntendendo como fazer um firewall pessoal
Entendendo como fazer um firewall pessoalAlmir Mendes
 
10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em PhpAlmir Mendes
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesAlmir Mendes
 

Más de Almir Mendes (14)

Software Livre, que história é essa?
Software Livre, que história é essa?Software Livre, que história é essa?
Software Livre, que história é essa?
 
[Rock'n Rails] Deploying Rails Applications with Capistrano
[Rock'n Rails] Deploying Rails Applications with Capistrano[Rock'n Rails] Deploying Rails Applications with Capistrano
[Rock'n Rails] Deploying Rails Applications with Capistrano
 
Projeto Arduino - Hardware para fazer coisas legais - FOCAI
Projeto Arduino - Hardware para fazer coisas legais - FOCAIProjeto Arduino - Hardware para fazer coisas legais - FOCAI
Projeto Arduino - Hardware para fazer coisas legais - FOCAI
 
Palestra "Do PHP ao Rails" - FOCAI
Palestra "Do PHP ao Rails" - FOCAIPalestra "Do PHP ao Rails" - FOCAI
Palestra "Do PHP ao Rails" - FOCAI
 
Palestra "Do PHP ao Rails"
Palestra "Do PHP ao Rails"Palestra "Do PHP ao Rails"
Palestra "Do PHP ao Rails"
 
Arduino Project :: Giran Siege
Arduino Project :: Giran SiegeArduino Project :: Giran Siege
Arduino Project :: Giran Siege
 
Palestra sobre AWK [Giran Siege]
Palestra sobre AWK [Giran Siege]Palestra sobre AWK [Giran Siege]
Palestra sobre AWK [Giran Siege]
 
Palestra regex
Palestra regexPalestra regex
Palestra regex
 
Palestra regex
Palestra regexPalestra regex
Palestra regex
 
Palestra de PDO
Palestra de PDOPalestra de PDO
Palestra de PDO
 
Distribuições Linux
Distribuições LinuxDistribuições Linux
Distribuições Linux
 
Entendendo como fazer um firewall pessoal
Entendendo como fazer um firewall pessoalEntendendo como fazer um firewall pessoal
Entendendo como fazer um firewall pessoal
 
10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php10+ Coisas Que Odeio Em Php
10+ Coisas Que Odeio Em Php
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 

Integração contínua com Hudson CI