1. Tanti Piccoli Rilasci con Symfony2 ! 10 ottobre 2014 -
SymfonyDay, Milano @morafabio
2. Chi sono @morafabio 2 1990 Fabio Mora 2001 Linux User Group
gallug.it 2008 Software Engineer freelance 2010 Prima SRL 2011
GrUSP, IAD 2013 Studente di Economia 2014 eBay
3. una user story non completa finch non nelle mani di chi la
deve usare 3
5. Quanto costa cambiare una singola riga di codice in
produzione? 5
6. Processi complessi? manual manual manual manual @morafabio 6
develop integrate build QA deploy smoke check merge regression PR
test metrics docs changelog package notify go live! KPI stories
code test build git push focus n * dev * n * progetti = !!!
7. A lazy programmer is a good programmer 7 Larry Wall
8. 8
9. Automatizziamo! @morafabio 9 one-click auto auto auto auto
develop integrate build QA deploy Continuos Integration Continuos
Delivery
10. Premesse @morafabio 10 Version Control System (git) Test
coverage (unit, integration, functional, e2e) Avere un host da
dedicare a C.I. Integrare almeno una volta al giorno Prima di
integrare, eseguire una build locale
11. 1. Una build di Symfony2 @morafabio 11 Cleanup Composer
Lint check parameters.yml Bower, grunt, sprites Security check
Doctrine Migrations Fixture Assetic phpunit -c app/ build.xml
targets ant build
17. Possibile scenario Symfony2 su Jenkins Test xUnit, Clover
PHP Metrics http://jenkins-php.org/ 17 SCM Git, GitHub Utility
GreenBalls, Workspace Cleanup, HTMLPublisher CheckStyle, DRY, PMD,
Violations
18. 3. Deploy swiss-knife @morafabio Usa capistrano (rails)
Collezione di recipes Operazioni su cluster Multistage extension 18
app/config/deploy.rb gem install capifony capifony .
19. app/config/deploy.rb 19
20. cap deploy:setup cap deploy cap deploy:rollback 20
21. MOAR MOAR! cap -vT 21 cap -vT | wc -l 83
22. Lezione imparata! Le cose che avrei voluto sapere prima
22
23. Tips & Tricks @morafabio 23 PHPUnit @group No-CI e CI
Cancellare il workspace allinizio, non alla fine Usare Satis (ed
altri repo locali) Usare DNS locali Jenkins sandbox: attenzione ai
processi esterni Git tag ad ogni deploy Cancellare la cache di APC
dopo il deploy Green Balls plugin per Jenkins bash = triforce!
24. Testing end to end in buildhost @morafabio 24
facebook/php-webdriver Selenium Xfvb Jenkins
https://github.com/morafabio/headless-selenium