Tanti "piccoli rilasci" con Symfony2

Fabio Mora
Fabio MoraSoftware Engineer at eBay
Tanti “Piccoli Rilasci” 
con Symfony2 
! 
10 ottobre 2014 - SymfonyDay, Milano 
@morafabio
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
“…una user story non è completa finché 
non è nelle mani di chi la deve usare…” 
3
http://symfony.com/it/doc/current/cookbook/deployment/tools.html 
4
Quanto costa cambiare una singola 
riga di codice in produzione? 
5
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 = !!!
“A lazy programmer 
is a good programmer” 
7 
Larry Wall
8
Automatizziamo! 
@morafabio 
9 
one-click 
auto auto auto 
auto 
develop integrate build QA deploy 
Continuos Integration 
Continuos Delivery
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
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
ant composer 
ant test 
12
ant doctrine-setup 
13
2. Jenkins C.I. 
• Check safety delle pull-request 
• Build (parametrizzate) 
• Testing, smoke, regression 
• Metriche, docs, changelog 
• Trigger post build (es. deploy) 
• Notifiche (mail, push…) 
• …tons of plugins! 
apt-get install jenkins 
wget http://localhost:8080/jnlpJars/jenkins-cli.jar 
java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin [plugins] 
@morafabio 
14 
web interface
15
2 
@morafabio 
16 
Setup di un task
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
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 .
app/config/deploy.rb 
19
cap deploy:setup 
cap deploy 
cap deploy:rollback 
20
MOAR MOAR!… cap -vT 
21 
cap -vT | wc -l 83
Lezione imparata! 
Le cose che avrei voluto sapere prima 
22
Tips & Tricks 
@morafabio 
23 
• PHPUnit @group No-CI e CI 
• Cancellare il workspace all’inizio, 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!
Testing end to end in buildhost 
@morafabio 
24 
facebook/php-webdriver 
Selenium Xfvb Jenkins 
https://github.com/morafabio/headless-selenium
Visual Feedback 
@morafabio 
25 
+ 
http://jenkins.ci/api/json
Visual Feedback 
@morafabio 
26 
+ 
http://jenkins.ci/api/json
27 
“Extreme Programming Explained / 2nd Ed.” 
Beck, Andres - Addison Wesley 
Bohem, Beck
planning game, small releases, 
metaphor, simple design, testing, 
refactoring, pair programming, 
collecting ownership, 
continuos integration, 
40 hours/week, customer on site, 
coding standards, whole team 
28
• Travis CI, wercker, Circle CI 
• Go, Cruise Control, Idephix 
• Maven, Phing, capistrano, grunt 
29 
MOAR 
tools! 
MOAR 
books!
Grazie! 
mail@fabiomora.com 
facebook.com/fabio.mm 
@morafabio 
30
Domande? 
Feedback 
https://joind.in/event/sfdayit-14 
Codice 
https://github.com/morafabio/symfony-ci 
mail@fabiomora.com 
facebook.com/fabio.mm 
@morafabio 
31
1 of 31

Recommended

La mia prima lezione di pozioni by
La mia prima lezione di pozioniLa mia prima lezione di pozioni
La mia prima lezione di pozioniGianluca Padovani
546 views49 slides
Linux Embedded per l'automazione by
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazioneDaniele Costarella
600 views29 slides
Build Automation Tips by
Build Automation TipsBuild Automation Tips
Build Automation TipsCarlo Bonamico
1.2K views13 slides
CruiseControl.net in un progetto reale by
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeDotNetMarche
329 views24 slides
Infrastructure as Data by
Infrastructure as DataInfrastructure as Data
Infrastructure as DataFrancesco Collova'
795 views17 slides
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa... by
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Natale Vinto
1.4K views19 slides

More Related Content

Viewers also liked

L’elefante nella stanza! [con LiquidO™] by
L’elefante nella stanza! [con LiquidO™] L’elefante nella stanza! [con LiquidO™]
L’elefante nella stanza! [con LiquidO™] Fabio Mora
661 views24 slides
Shazam to Spotify - spike/demo web project by
Shazam to Spotify - spike/demo web projectShazam to Spotify - spike/demo web project
Shazam to Spotify - spike/demo web projectFabio Mora
5.2K views8 slides
cambiare punto di vista by
cambiare punto di vistacambiare punto di vista
cambiare punto di vistaFabio Mora
880 views53 slides
CoderDojo - Galliate, 20 aprile 2013 by
CoderDojo - Galliate, 20 aprile 2013CoderDojo - Galliate, 20 aprile 2013
CoderDojo - Galliate, 20 aprile 2013Fabio Mora
702 views21 slides
php: back to basics by
php: back to basicsphp: back to basics
php: back to basicsFabio Mora
964 views27 slides
Perchè Agile? Cambiamenti culturali work in progress. by
Perchè Agile? Cambiamenti culturali work in progress.Perchè Agile? Cambiamenti culturali work in progress.
Perchè Agile? Cambiamenti culturali work in progress.Fabio Mora
684 views29 slides

Viewers also liked(16)

L’elefante nella stanza! [con LiquidO™] by Fabio Mora
L’elefante nella stanza! [con LiquidO™] L’elefante nella stanza! [con LiquidO™]
L’elefante nella stanza! [con LiquidO™]
Fabio Mora661 views
Shazam to Spotify - spike/demo web project by Fabio Mora
Shazam to Spotify - spike/demo web projectShazam to Spotify - spike/demo web project
Shazam to Spotify - spike/demo web project
Fabio Mora5.2K views
cambiare punto di vista by Fabio Mora
cambiare punto di vistacambiare punto di vista
cambiare punto di vista
Fabio Mora880 views
CoderDojo - Galliate, 20 aprile 2013 by Fabio Mora
CoderDojo - Galliate, 20 aprile 2013CoderDojo - Galliate, 20 aprile 2013
CoderDojo - Galliate, 20 aprile 2013
Fabio Mora702 views
php: back to basics by Fabio Mora
php: back to basicsphp: back to basics
php: back to basics
Fabio Mora964 views
Perchè Agile? Cambiamenti culturali work in progress. by Fabio Mora
Perchè Agile? Cambiamenti culturali work in progress.Perchè Agile? Cambiamenti culturali work in progress.
Perchè Agile? Cambiamenti culturali work in progress.
Fabio Mora684 views
Linux & Tools: per la piccola azienda e i freelance by Fabio Mora
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelance
Fabio Mora663 views
If "Embrace Change" is Hard (@milano-xpug) by Fabio Mora
If "Embrace Change" is Hard (@milano-xpug)If "Embrace Change" is Hard (@milano-xpug)
If "Embrace Change" is Hard (@milano-xpug)
Fabio Mora1.7K views
Continuous Delivery di una WebApp - by example by Fabio Mora
Continuous Delivery di una WebApp - by exampleContinuous Delivery di una WebApp - by example
Continuous Delivery di una WebApp - by example
Fabio Mora1.2K views
L’elefante nella stanza! [con LiquidO™] - Codemotion 2014 by Fabio Mora
L’elefante nella stanza! [con LiquidO™] - Codemotion 2014L’elefante nella stanza! [con LiquidO™] - Codemotion 2014
L’elefante nella stanza! [con LiquidO™] - Codemotion 2014
Fabio Mora1.5K views
php: standards & fizz buzz by Fabio Mora
php: standards & fizz buzzphp: standards & fizz buzz
php: standards & fizz buzz
Fabio Mora668 views
The Crossword Game by Fabio Mora
The Crossword GameThe Crossword Game
The Crossword Game
Fabio Mora441 views
Linux, sicurezza & social hacking by Fabio Mora
Linux, sicurezza & social hackingLinux, sicurezza & social hacking
Linux, sicurezza & social hacking
Fabio Mora511 views
Se “Embrace Change” è difficile. by Fabio Mora
Se “Embrace Change” è difficile.Se “Embrace Change” è difficile.
Se “Embrace Change” è difficile.
Fabio Mora4.3K views
Esame di Stato: idee Hardware e Software by Fabio Mora
Esame di Stato: idee Hardware e SoftwareEsame di Stato: idee Hardware e Software
Esame di Stato: idee Hardware e Software
Fabio Mora1K views
It was just Open Source - TEDx Novara by Fabio Mora
It was just Open Source - TEDx NovaraIt was just Open Source - TEDx Novara
It was just Open Source - TEDx Novara
Fabio Mora543 views

Similar to Tanti "piccoli rilasci" con Symfony2

Agileday2013 pratiche agili applicate all'infrastruttura by
Agileday2013 pratiche agili applicate all'infrastrutturaAgileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastrutturaXPeppers
3K views55 slides
Tdd e continuous delivery sull'infrastruttura by
Tdd e continuous delivery sull'infrastrutturaTdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastrutturaCodemotion
1.7K views82 slides
TDD e Continuous Delivery sull'infrastruttura by
TDD e Continuous Delivery sull'infrastrutturaTDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastrutturaFilippo Liverani
2.8K views82 slides
Works with ASP.NET Core on Linux and Mac by
Works with ASP.NET Core on Linux and MacWorks with ASP.NET Core on Linux and Mac
Works with ASP.NET Core on Linux and MacEmanuele Bartolesi
794 views16 slides
Web frameworks by
Web frameworksWeb frameworks
Web frameworksGianfranco Reppucci
549 views35 slides
Continuous Deployment - Agile Day 2010 by
Continuous Deployment - Agile Day 2010Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010migratore
391 views17 slides

Similar to Tanti "piccoli rilasci" con Symfony2(20)

Agileday2013 pratiche agili applicate all'infrastruttura by XPeppers
Agileday2013 pratiche agili applicate all'infrastrutturaAgileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastruttura
XPeppers3K views
Tdd e continuous delivery sull'infrastruttura by Codemotion
Tdd e continuous delivery sull'infrastrutturaTdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastruttura
Codemotion1.7K views
TDD e Continuous Delivery sull'infrastruttura by Filippo Liverani
TDD e Continuous Delivery sull'infrastrutturaTDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastruttura
Filippo Liverani2.8K views
Continuous Deployment - Agile Day 2010 by migratore
Continuous Deployment - Agile Day 2010Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010
migratore391 views
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome... by Codemotion
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
Codemotion217 views
.NET Core, ASP.NET Core e Linux per il Mobile by Pietro Libro
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile
Pietro Libro317 views
DbUp - A real case of database migration by Andrea Cirioni
DbUp - A real case of database migrationDbUp - A real case of database migration
DbUp - A real case of database migration
Andrea Cirioni292 views
ALM Revolutions - What's new in visual studio ALM 11 by DomusDotNet
ALM Revolutions - What's new in visual studio ALM 11ALM Revolutions - What's new in visual studio ALM 11
ALM Revolutions - What's new in visual studio ALM 11
DomusDotNet426 views
Writing apps for android with .net by Leonardo Alario
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net
Leonardo Alario1.9K views
Continuous Integration e High Quality Code by Daniele Mondello
Continuous Integration e High Quality CodeContinuous Integration e High Quality Code
Continuous Integration e High Quality Code
Daniele Mondello1.2K views
Machine learning models continuous deployment on azure using devops by Igor Antonacci
Machine learning models continuous deployment on azure using devopsMachine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devops
Igor Antonacci42 views
Osd 2016 Middleware Track by Ugo Landini
Osd 2016 Middleware TrackOsd 2016 Middleware Track
Osd 2016 Middleware Track
Ugo Landini849 views

More from Fabio Mora

Esperimenti Kanban: tra economia e teoria delle code. by
Esperimenti Kanban: tra economia e teoria delle code.Esperimenti Kanban: tra economia e teoria delle code.
Esperimenti Kanban: tra economia e teoria delle code.Fabio Mora
517 views33 slides
La Unix Way vista da un DevOps by
La Unix Way vista da un DevOpsLa Unix Way vista da un DevOps
La Unix Way vista da un DevOpsFabio Mora
594 views67 slides
We don't talk about Agile anymore by
We don't talk about Agile anymoreWe don't talk about Agile anymore
We don't talk about Agile anymoreFabio Mora
1.3K views53 slides
A quick introduction: Extreme Programming by
A quick introduction: Extreme ProgrammingA quick introduction: Extreme Programming
A quick introduction: Extreme ProgrammingFabio Mora
292 views26 slides
Quick Introduction: Extreme Programming by
Quick Introduction: Extreme ProgrammingQuick Introduction: Extreme Programming
Quick Introduction: Extreme ProgrammingFabio Mora
73 views26 slides
Progressive Feature Rollout by
Progressive Feature RolloutProgressive Feature Rollout
Progressive Feature RolloutFabio Mora
519 views40 slides

More from Fabio Mora(9)

Esperimenti Kanban: tra economia e teoria delle code. by Fabio Mora
Esperimenti Kanban: tra economia e teoria delle code.Esperimenti Kanban: tra economia e teoria delle code.
Esperimenti Kanban: tra economia e teoria delle code.
Fabio Mora517 views
La Unix Way vista da un DevOps by Fabio Mora
La Unix Way vista da un DevOpsLa Unix Way vista da un DevOps
La Unix Way vista da un DevOps
Fabio Mora594 views
We don't talk about Agile anymore by Fabio Mora
We don't talk about Agile anymoreWe don't talk about Agile anymore
We don't talk about Agile anymore
Fabio Mora1.3K views
A quick introduction: Extreme Programming by Fabio Mora
A quick introduction: Extreme ProgrammingA quick introduction: Extreme Programming
A quick introduction: Extreme Programming
Fabio Mora292 views
Quick Introduction: Extreme Programming by Fabio Mora
Quick Introduction: Extreme ProgrammingQuick Introduction: Extreme Programming
Quick Introduction: Extreme Programming
Fabio Mora73 views
Progressive Feature Rollout by Fabio Mora
Progressive Feature RolloutProgressive Feature Rollout
Progressive Feature Rollout
Fabio Mora519 views
2009 - Quotidiana Legalità by Fabio Mora
2009 - Quotidiana Legalità2009 - Quotidiana Legalità
2009 - Quotidiana Legalità
Fabio Mora62 views
LinuxDay 2009 - Quali programmi? by Fabio Mora
LinuxDay 2009 - Quali programmi?LinuxDay 2009 - Quali programmi?
LinuxDay 2009 - Quali programmi?
Fabio Mora284 views
LinuxDay 2009 - Cos'è Linux? by Fabio Mora
LinuxDay 2009 - Cos'è Linux?LinuxDay 2009 - Cos'è Linux?
LinuxDay 2009 - Cos'è Linux?
Fabio Mora279 views

Recently uploaded

Convegno 16/11 da IRETI | SPINUSO+MAGGI by
Convegno 16/11 da IRETI | SPINUSO+MAGGIConvegno 16/11 da IRETI | SPINUSO+MAGGI
Convegno 16/11 da IRETI | SPINUSO+MAGGIServizi a rete
18 views15 slides
Convegno 16/11 da IRETI | TROIANO Luigia by
Convegno 16/11 da IRETI | TROIANO LuigiaConvegno 16/11 da IRETI | TROIANO Luigia
Convegno 16/11 da IRETI | TROIANO LuigiaServizi a rete
48 views15 slides
Progettazione ed installazione impianti d'antenna by
Progettazione ed installazione impianti d'antenna Progettazione ed installazione impianti d'antenna
Progettazione ed installazione impianti d'antenna Massimo Talia
5 views6 slides
Convegno 16/11 da IRETI | PERSI Davide by
Convegno 16/11 da IRETI | PERSI DavideConvegno 16/11 da IRETI | PERSI Davide
Convegno 16/11 da IRETI | PERSI DavideServizi a rete
10 views21 slides
Webinar EBWorld 28 novembre 2023 by
Webinar EBWorld 28 novembre 2023Webinar EBWorld 28 novembre 2023
Webinar EBWorld 28 novembre 2023Servizi a rete
17 views12 slides
Convegno 16/11 da IRETI | CASE Nicola by
Convegno 16/11 da IRETI | CASE NicolaConvegno 16/11 da IRETI | CASE Nicola
Convegno 16/11 da IRETI | CASE NicolaServizi a rete
10 views21 slides

Recently uploaded(10)

Convegno 16/11 da IRETI | SPINUSO+MAGGI by Servizi a rete
Convegno 16/11 da IRETI | SPINUSO+MAGGIConvegno 16/11 da IRETI | SPINUSO+MAGGI
Convegno 16/11 da IRETI | SPINUSO+MAGGI
Servizi a rete18 views
Convegno 16/11 da IRETI | TROIANO Luigia by Servizi a rete
Convegno 16/11 da IRETI | TROIANO LuigiaConvegno 16/11 da IRETI | TROIANO Luigia
Convegno 16/11 da IRETI | TROIANO Luigia
Servizi a rete48 views
Progettazione ed installazione impianti d'antenna by Massimo Talia
Progettazione ed installazione impianti d'antenna Progettazione ed installazione impianti d'antenna
Progettazione ed installazione impianti d'antenna
Massimo Talia5 views
Convegno 16/11 da IRETI | PERSI Davide by Servizi a rete
Convegno 16/11 da IRETI | PERSI DavideConvegno 16/11 da IRETI | PERSI Davide
Convegno 16/11 da IRETI | PERSI Davide
Servizi a rete10 views
Webinar EBWorld 28 novembre 2023 by Servizi a rete
Webinar EBWorld 28 novembre 2023Webinar EBWorld 28 novembre 2023
Webinar EBWorld 28 novembre 2023
Servizi a rete17 views
Convegno 16/11 da IRETI | CASE Nicola by Servizi a rete
Convegno 16/11 da IRETI | CASE NicolaConvegno 16/11 da IRETI | CASE Nicola
Convegno 16/11 da IRETI | CASE Nicola
Servizi a rete10 views
Convegno 16/11 da IRETI | PALLOTTA Marco by Servizi a rete
Convegno 16/11 da IRETI | PALLOTTA MarcoConvegno 16/11 da IRETI | PALLOTTA Marco
Convegno 16/11 da IRETI | PALLOTTA Marco
Servizi a rete6 views
Convegno 16/11 da IRETI | ROCCHI Daniele by Servizi a rete
Convegno 16/11 da IRETI | ROCCHI DanieleConvegno 16/11 da IRETI | ROCCHI Daniele
Convegno 16/11 da IRETI | ROCCHI Daniele
Servizi a rete18 views
Convegno 16/11 da IRETI | CURATOLA Franco by Servizi a rete
Convegno 16/11 da IRETI | CURATOLA FrancoConvegno 16/11 da IRETI | CURATOLA Franco
Convegno 16/11 da IRETI | CURATOLA Franco
Servizi a rete8 views
Convegno 16/11 da IRETI | CARNI Marco by Servizi a rete
Convegno 16/11 da IRETI | CARNI MarcoConvegno 16/11 da IRETI | CARNI Marco
Convegno 16/11 da IRETI | CARNI Marco
Servizi a rete9 views

Tanti "piccoli rilasci" con Symfony2

  • 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
  • 12. ant composer ant test 12
  • 14. 2. Jenkins C.I. • Check safety delle pull-request • Build (parametrizzate) • Testing, smoke, regression • Metriche, docs, changelog • Trigger post build (es. deploy) • Notifiche (mail, push…) • …tons of plugins! apt-get install jenkins wget http://localhost:8080/jnlpJars/jenkins-cli.jar java -jar jenkins-cli.jar -s http://localhost:8080 install-plugin [plugins] @morafabio 14 web interface
  • 15. 15
  • 16. 2 @morafabio 16 Setup di un task
  • 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 .
  • 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 all’inizio, 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
  • 25. Visual Feedback @morafabio 25 + http://jenkins.ci/api/json
  • 26. Visual Feedback @morafabio 26 + http://jenkins.ci/api/json
  • 27. 27 “Extreme Programming Explained / 2nd Ed.” Beck, Andres - Addison Wesley Bohem, Beck
  • 28. planning game, small releases, metaphor, simple design, testing, refactoring, pair programming, collecting ownership, continuos integration, 40 hours/week, customer on site, coding standards, whole team 28
  • 29. • Travis CI, wercker, Circle CI • Go, Cruise Control, Idephix • Maven, Phing, capistrano, grunt 29 MOAR tools! MOAR books!
  • 31. Domande? Feedback https://joind.in/event/sfdayit-14 Codice https://github.com/morafabio/symfony-ci mail@fabiomora.com facebook.com/fabio.mm @morafabio 31