continuous integration in php
TRANSCRIPT
![Page 1: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/1.jpg)
LESZEK KRUPIŃSKI PHPERS WARSZAWACONTINUOUS IN
TEGRATION AND PHP
![Page 2: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/2.jpg)
HELLO.
LESZEK KRUPIŃSKIARCHITECT CONSULTANT DEVELOPER
@LEAFNODELEAFNODE.PL
![Page 3: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/3.jpg)
MANY PEOPLE DEVELOP THE SAME CODEBASE
![Page 4: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/4.jpg)
PERFECT SITUATION
![Page 5: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/5.jpg)
Dev1 Dev2
MAI
N BR
ANCH
![Page 6: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/6.jpg)
REALITY
![Page 7: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/7.jpg)
Dev1 Dev2
MAI
N BR
ANCH
6 m
onth
s
![Page 8: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/8.jpg)
RELEASE!
![Page 9: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/9.jpg)
![Page 10: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/10.jpg)
![Page 11: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/11.jpg)
Dev1 Dev2
MAI
N BR
ANCH
![Page 12: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/12.jpg)
CONTINUOUS INTEGRATION!
![Page 13: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/13.jpg)
TARGET:
INTEGRATION HELL
![Page 14: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/14.jpg)
METHOD:
INTEGRATION EVEN FEW TIMES A DAY
![Page 15: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/15.jpg)
RULES
YES, IT’S FROM WIKIPEDIA
![Page 16: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/16.jpg)
1
USE CODE REPOSITORY
![Page 17: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/17.jpg)
2
AUTOMATE YOUR BUILD
![Page 18: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/18.jpg)
3
LET THE BUILD TEST ITSELF
![Page 19: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/19.jpg)
4
EVERY DEVELOPER COMMITS TO THE MAIN BRANCH AT LEAST ONCE A DAY
![Page 20: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/20.jpg)
5
EVERY COMMIT SHOULD BE BUILT AND TESTED
![Page 21: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/21.jpg)
6
BUILD SHOULD BE FAST
![Page 22: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/22.jpg)
7
TEST IN PRODUCTION-LIKE ENVIRONMENT
(AS CLOSE AS YOU CAN)
![Page 23: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/23.jpg)
8
GIVE DEVELOPERS ACCESS TO THE BUILD ARTIFACTS
![Page 24: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/24.jpg)
9
EVERY DEVELOPER HAS ACCESS TO THE LAST BUILD RESULTS
![Page 25: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/25.jpg)
10
AUTOMATE YOUR DEPLOYMENT
![Page 26: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/26.jpg)
+/-
![Page 27: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/27.jpg)
MANUALLY? UNFEASIBLE.
![Page 28: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/28.jpg)
HUDSON
JENKINSTRAVIS CI
CRUISECONTROL
BAMBOOTEAMCITY
![Page 29: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/29.jpg)
MEET JENKINS
(SOMETIMES KNOWN AS HUDSON)
![Page 30: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/30.jpg)
![Page 31: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/31.jpg)
INSTALLATION
• Stand-alone JAR
• Tomcat
• apt-get install jenkins
• apache/nginx proxy
![Page 32: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/32.jpg)
TRIGGERS
![Page 33: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/33.jpg)
BUT… PHP DOES NOT COMPILE!
(SORT OF)
![Page 34: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/34.jpg)
CODING STANDARDSTESTS
COMPLEXITY
DOCUMENTATION
METRICS
USING PLUGINS
![Page 35: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/35.jpg)
USING EXTERNAL TOOLS CONNECTORS
DYNAMIC DUO: SEBASTIAN BERGMANN
STEFAN PRIEBSCH
![Page 36: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/36.jpg)
PHPUNIT(+COVERAGE)
![Page 37: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/37.jpg)
SELENIUM
![Page 38: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/38.jpg)
PHP DEPEND
CODE COMPLEXITY AND ERRORS
![Page 39: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/39.jpg)
![Page 40: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/40.jpg)
PHP MESS DETECTOR
![Page 41: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/41.jpg)
PHP COPY/PASTE DETECTOR
![Page 42: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/42.jpg)
CODESNIFFER
![Page 43: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/43.jpg)
![Page 44: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/44.jpg)
PHPDOX
API BROWSER
![Page 45: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/45.jpg)
CODE BROWSER
![Page 46: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/46.jpg)
THAT’S NOT ALL!
![Page 47: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/47.jpg)
RUNNING SCRIPTS
![Page 48: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/48.jpg)
DEPLOYMENT
![Page 49: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/49.jpg)
SLAVE? GIVE ME YOUR KEY.
![Page 50: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/50.jpg)
ACCESS CONTROL
![Page 51: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/51.jpg)
LET’S PLAY!
![Page 52: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/52.jpg)
http://www.pinterest.com/pin/430164201879055746/
https://wiki.jenkins-ci.org/display/JENKINS/Lava+Lamp+Notifier
http://www.pinterest.com/pin/430164201879062573/
![Page 53: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/53.jpg)
http://blog.agilegamedevelopment.com/2011/09/homebrew-build-status-traffic-light.html
![Page 55: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/55.jpg)
http://www.therealjoshanderson.com/2010/04/ledbloa-ftw-my-teams-new-build-status.html
![Page 58: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/58.jpg)
WHAT ELSE
![Page 59: Continuous Integration in PHP](https://reader031.vdocument.in/reader031/viewer/2022021921/58f309591a28abb07d8b45c9/html5/thumbnails/59.jpg)
http://en.wikipedia.org/wiki/File:Continuous_Delivery_process_diagram.png CC-BY-SA (c) Jez Humble