Top Banner
L ESZEK K RUPIŃSKI PHP ERS W ARSZAWA CONTINUOUS INTEGRATION AND PHP
60

Continuous Integration in PHP

Apr 16, 2017

Download

Software

leafnode
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Continuous Integration in PHP

LESZEK KRUPIŃSKI PHPERS WARSZAWACONTINUOUS IN

TEGRATION AND PHP

Page 2: Continuous Integration in PHP

HELLO.

LESZEK KRUPIŃSKIARCHITECT CONSULTANT DEVELOPER

@LEAFNODELEAFNODE.PL

Page 3: Continuous Integration in PHP

MANY PEOPLE DEVELOP THE SAME CODEBASE

Page 4: Continuous Integration in PHP

PERFECT SITUATION

Page 5: Continuous Integration in PHP

Dev1 Dev2

MAI

N BR

ANCH

Page 6: Continuous Integration in PHP

REALITY

Page 7: Continuous Integration in PHP

Dev1 Dev2

MAI

N BR

ANCH

6 m

onth

s

Page 8: Continuous Integration in PHP

RELEASE!

Page 9: Continuous Integration in PHP
Page 10: Continuous Integration in PHP
Page 11: Continuous Integration in PHP

Dev1 Dev2

MAI

N BR

ANCH

Page 12: Continuous Integration in PHP

CONTINUOUS INTEGRATION!

Page 13: Continuous Integration in PHP

TARGET:

INTEGRATION HELL

Page 14: Continuous Integration in PHP

METHOD:

INTEGRATION EVEN FEW TIMES A DAY

Page 15: Continuous Integration in PHP

RULES

YES, IT’S FROM WIKIPEDIA

Page 16: Continuous Integration in PHP

1

USE CODE REPOSITORY

Page 17: Continuous Integration in PHP

2

AUTOMATE YOUR BUILD

Page 18: Continuous Integration in PHP

3

LET THE BUILD TEST ITSELF

Page 19: Continuous Integration in PHP

4

EVERY DEVELOPER COMMITS TO THE MAIN BRANCH AT LEAST ONCE A DAY

Page 20: Continuous Integration in PHP

5

EVERY COMMIT SHOULD BE BUILT AND TESTED

Page 21: Continuous Integration in PHP

6

BUILD SHOULD BE FAST

Page 22: Continuous Integration in PHP

7

TEST IN PRODUCTION-LIKE ENVIRONMENT

(AS CLOSE AS YOU CAN)

Page 23: Continuous Integration in PHP

8

GIVE DEVELOPERS ACCESS TO THE BUILD ARTIFACTS

Page 24: Continuous Integration in PHP

9

EVERY DEVELOPER HAS ACCESS TO THE LAST BUILD RESULTS

Page 25: Continuous Integration in PHP

10

AUTOMATE YOUR DEPLOYMENT

Page 26: Continuous Integration in PHP

+/-

Page 27: Continuous Integration in PHP

MANUALLY? UNFEASIBLE.

Page 28: Continuous Integration in PHP

HUDSON

JENKINSTRAVIS CI

CRUISECONTROL

BAMBOOTEAMCITY

Page 29: Continuous Integration in PHP

MEET JENKINS

(SOMETIMES KNOWN AS HUDSON)

Page 30: Continuous Integration in PHP
Page 31: Continuous Integration in PHP

INSTALLATION

• Stand-alone JAR

• Tomcat

• apt-get install jenkins

• apache/nginx proxy

Page 32: Continuous Integration in PHP

TRIGGERS

Page 33: Continuous Integration in PHP

BUT… PHP DOES NOT COMPILE!

(SORT OF)

Page 34: Continuous Integration in PHP

CODING STANDARDSTESTS

COMPLEXITY

DOCUMENTATION

METRICS

USING PLUGINS

Page 35: Continuous Integration in PHP

USING EXTERNAL TOOLS CONNECTORS

DYNAMIC DUO: SEBASTIAN BERGMANN

STEFAN PRIEBSCH

Page 36: Continuous Integration in PHP

PHPUNIT(+COVERAGE)

Page 37: Continuous Integration in PHP

SELENIUM

Page 38: Continuous Integration in PHP

PHP DEPEND

CODE COMPLEXITY AND ERRORS

Page 39: Continuous Integration in PHP
Page 40: Continuous Integration in PHP

PHP MESS DETECTOR

Page 41: Continuous Integration in PHP

PHP COPY/PASTE DETECTOR

Page 42: Continuous Integration in PHP

CODESNIFFER

Page 43: Continuous Integration in PHP
Page 44: Continuous Integration in PHP

PHPDOX

API BROWSER

Page 45: Continuous Integration in PHP

CODE BROWSER

Page 46: Continuous Integration in PHP

THAT’S NOT ALL!

Page 47: Continuous Integration in PHP

RUNNING SCRIPTS

Page 48: Continuous Integration in PHP

DEPLOYMENT

Page 49: Continuous Integration in PHP

SLAVE? GIVE ME YOUR KEY.

Page 50: Continuous Integration in PHP

ACCESS CONTROL

Page 51: Continuous Integration in PHP

LET’S PLAY!

Page 52: Continuous Integration in PHP

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

http://blog.agilegamedevelopment.com/2011/09/homebrew-build-status-traffic-light.html

Page 54: Continuous Integration in PHP

http://www.pinterest.com/pin/430164201879093032/

Page 55: Continuous Integration in PHP

http://www.therealjoshanderson.com/2010/04/ledbloa-ftw-my-teams-new-build-status.html

Page 56: Continuous Integration in PHP

http://code.google.com/p/siren-of-shame/

Page 57: Continuous Integration in PHP

http://www.panic.com/blog/the-panic-status-board/

Page 58: Continuous Integration in PHP

WHAT ELSE

Page 59: Continuous Integration in PHP

http://en.wikipedia.org/wiki/File:Continuous_Delivery_process_diagram.png CC-BY-SA (c) Jez Humble

Page 60: Continuous Integration in PHP

THANK YOU.

JENKINS-PHP.ORG SLIDESHARE.NET/LEAFNODE