jenkins + dcs / dafiti conference 2014
DESCRIPTION
Veja como usamos o Jenkins na Dafiti. Também conheça nossa ferramenta para validação de funcionalidades o Dafiti Code Sheriff. Para ver a apresentação com as anotações: https://docs.google.com/presentation/d/1MM1feMDeTIgnnO3qmrudXsaFYkP1v-ZHu0k_h4ZnuUA/pub?start=false&loop=false&delayms=3000 Dafiti Code Sheriff: https://github.com/dafiti/cs Dafiti Conference 2014: http://ti.dafiti.com.br/dafiti-tech-conference-2014/TRANSCRIPT
![Page 1: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/1.jpg)
Jenkins + DCS
![Page 2: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/2.jpg)
Quem sou eu!
Rodrigo MoyleArquiteto de Software na Dafiti
![Page 3: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/3.jpg)
Conteúdo
● Integração Contínua● Jenkins● Dafiti Code Sheriff
![Page 4: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/4.jpg)
Aquela velha história
● Aplicação PHP + MySQL● Git● Alguns testes unitários (Nem sempre)● Publicação via FTP
![Page 5: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/5.jpg)
Problemas?
![Page 6: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/6.jpg)
Solução?
![Page 7: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/7.jpg)
Integração Contínua
● Frequente● Automatizado● Feedback constante
![Page 8: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/8.jpg)
Jenkins
● Open source● Java● 881 plugins● Qualquer plataforma
![Page 9: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/9.jpg)
Testes Unitários
![Page 10: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/10.jpg)
Cobertura de Código
![Page 11: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/11.jpg)
Testes Funcionais
![Page 12: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/12.jpg)
Métricas
![Page 13: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/13.jpg)
Documentação
![Page 15: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/15.jpg)
Lava Lamp Notififer
![Page 16: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/16.jpg)
E muito mais!
![Page 17: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/17.jpg)
Agora, mão na massa!
![Page 18: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/18.jpg)
Instalação ~$ wget -c \http://mirrors.jenkins-ci.org/war/latest/jenkins.war
~$ java -jar jenkins.war
http://localhost:8080/
![Page 19: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/19.jpg)
Plugins
● Git● PHP Plugin
○ xUnit○ Clover PHP○ HTML Publisher○ DRY○ Checkstyle○ E outros...
![Page 20: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/20.jpg)
O primeiro Job
![Page 21: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/21.jpg)
Construção #1
![Page 22: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/22.jpg)
Relatório de Teste
![Page 23: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/23.jpg)
Construção #2
![Page 24: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/24.jpg)
Cobertura de Testes
![Page 25: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/25.jpg)
Construção #3
![Page 26: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/26.jpg)
Cobertura de Testes++
![Page 27: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/27.jpg)
Construção #4
![Page 28: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/28.jpg)
Feedback
![Page 29: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/29.jpg)
Construção #5
![Page 30: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/30.jpg)
Automatizando
![Page 31: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/31.jpg)
Quebrando o build
![Page 32: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/32.jpg)
Corrigindo o build
![Page 33: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/33.jpg)
PHP QA Tools
http://jenkins-php.org/http://phpqatools.org/
● PHPUnit● Behat● PHPLOC● PHP_Depend
● PHPMD● PHPCS● PHPCPD● PHPDCD
![Page 34: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/34.jpg)
Dafiti Code Sheriff
![Page 35: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/35.jpg)
PHPUnit
● Testes devem passar● Cobertura não deve diminuir
http://phpunit.de/
![Page 36: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/36.jpg)
PHPCS
Sempre seguir o padrão que todos estão acostumados.
http://pear.php.net/package/PHP_CodeSniffer/
![Page 37: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/37.jpg)
PHPMD
● Tamanho de código● Controversas● Design● Nomes● Código não utilizado
http://phpmd.org/
![Page 38: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/38.jpg)
Instalação
https://github.com/dafiti/cs
$ git clone [email protected]:dafiti/cs.git$ cd cs/$ python setup.py build$ python setup.py install
![Page 39: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/39.jpg)
$ cs -d <branch>
![Page 40: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/40.jpg)
$ cs -d <branch>
![Page 41: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/41.jpg)
Construindo...
![Page 42: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/42.jpg)
Alternativas
● TravisCI● Atlassian Bamboo● CircleCI
![Page 43: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/43.jpg)
Referências/Links● http://jenkins-ci.org/● https://wiki.jenkins-ci.org/display/JENKINS/Plugins● https://github.com/dafiti/cs● https://travis-ci.org/ e https://travis-ci.com/● https://www.atlassian.com/software/bamboo● https://circleci.com/● http://jenkins-php.org/● http://phpqatools.org/
![Page 44: Jenkins + DCS / Dafiti Conference 2014](https://reader033.vdocuments.pub/reader033/viewer/2022050919/5474dc14b4af9fa30a8b58b4/html5/thumbnails/44.jpg)
http://www.flickr.com/photos/oberazzi/318947873/