Jenkins + DCS
Quem sou eu!
Rodrigo Moyle
Arquiteto de Software na Dafiti
Conteúdo
● Integração Contínua
● Jenkins
● Dafiti Code Sheriff
Aquela velha história
●
●
●
●

Aplicação PHP + MySQL
Git
Alguns testes unitários (Nem sempre)
Publicação via FTP
Problemas?
Solução?
Integração Contínua
● Frequente
● Automatizado
● Feedback constante
Jenkins
●
●
●
●

Open source
Java
881 plugins
Qualquer plataforma
Testes Unitários
Cobertura de Código
Testes Funcionais
Métricas
Documentação
Lava Lamp Notififer
E muito mais!
Agora, mão na massa!
Instalação
~$ wget -c 
http://mirrors.jenkins-ci.org/war/latest/jenkins.war
~$ java -jar jenkins.war
http://localhost:8080/
Plugins
● Git
● PHP Plugin
○
○
○
○
○
○

xUnit
Clover PHP
HTML Publisher
DRY
Checkstyle
E outros...
O primeiro Job
Construção #1
Relatório de Teste
Construção #2
Cobertura de Testes
Construção #3
Cobertura de Testes++
Construção #4
Feedback
Construção #5
Automatizando
Quebrando o build
Corrigindo o build
PHP QA Tools
http://jenkins-php.org/
http://phpqatools.org/
●
●
●
●

PHPUnit
Behat
PHPLOC
PHP_Depend

●
●
●
●

PHPMD
PHPCS
PHPCPD
PHPDCD
Dafiti Code Sheriff
PHPUnit
● Testes devem passar
● Cobertura não deve diminuir

http://phpunit.de/
PHPCS
Sempre seguir o padrão que todos estão
acostumados.

http://pear.php.net/package/PHP_CodeSniffer/
PHPMD
●
●
●
●
●

Tamanho de código
Controversas
Design
Nomes
Código não utilizado

http://phpmd.org/
Instalação
https://github.com/dafiti/cs
$ git clone git@github.com:dafiti/cs.git
$ cd cs/
$ python setup.py build
$ python setup.py install
$ cs -d <branch>
$ cs -d <branch>
Construindo...
Alternativas
● TravisCI
● Atlassian Bamboo
● CircleCI
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/
http://www.flickr.com/photos/oberazzi/318947873/
Muito obrigado!

https://github.com/rodrigorm
@rodrigorm
rodrigo.moyle@dafiti.com.br

Jenkins + DCS / Dafiti Conference 2014