8/8/2019 Continuous Integration and Php 1203717119983797 3
1/34
improve your development processContinuous Integration and PHP
Arno SchneiderSystem Architect
Project Lead of Xinc
8/8/2019 Continuous Integration and Php 1203717119983797 3
2/34
Continuous Integration and PHP
Introduction
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
8/8/2019 Continuous Integration and Php 1203717119983797 3
3/34
Continuous Integration and PHP
Topics of this Presentation
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
8/8/2019 Continuous Integration and Php 1203717119983797 3
4/34
Continuous Integration and PHP
What is Continuous Integration?
What is Integration?
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
8/8/2019 Continuous Integration and Php 1203717119983797 3
5/34
Continuous Integration and PHP
What is Continuous Integration?
Short Summary
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
8/8/2019 Continuous Integration and Php 1203717119983797 3
6/34
Continuous Integration and PHP
What is Continuous Integration?
A common process without Continuous Integration
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
NumberofBu
gs
undetected bugs
Project Timeline
Development Phase Testing PhaseIntegration Phase
8/8/2019 Continuous Integration and Php 1203717119983797 3
7/34
Continuous Integration and PHP
What is Continuous Integration?
Workflow for Developers first step towards CI
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Checkout / Update
Develop
Local testing
Update WC
Resolve / Testing
Commit
Receive
Build Result
!
8/8/2019 Continuous Integration and Php 1203717119983797 3
8/34
Continuous Integration and PHP
What is Continuous Integration?
Development process with Continuous Integration
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23 rd 2008
NumberofBu
gs
Project Timeline
Development
Testing / Integration
Undetected Bugs
8/8/2019 Continuous Integration and Php 1203717119983797 3
9/34
Continuous Integration and PHP
Using CI to improve your development
How to get started
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
How do we get from the
current situation ...
feeling the pain late and
suffering more
.. to a CI controlled
workflow?suffering the pain earlier
and have a better product
8/8/2019 Continuous Integration and Php 1203717119983797 3
10/34
Continuous Integration and PHP
Using CI to improve your development
How to get started self testing code
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
8/8/2019 Continuous Integration and Php 1203717119983797 3
11/34
Continuous Integration and PHP
Using CI to improve your development
How to get started team development behavior
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
C i I i d PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
12/34
Continuous Integration and PHP
Using CI to improve your development
How to get started configuration control / automated deployment
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
C ti I t ti d PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
13/34
Continuous Integration and PHP
Using CI to improve your development
How to get started - Summary
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
C ti I t ti d PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
14/34
Continuous Integration and PHP
Continuous Integration Servers
Workflow with CI Server
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
15/34
Continuous Integration and PHP
Continuous Integration Servers
Benefits
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
16/34
Continuous Integration and PHP
Continuous Integration Servers
CruiseControl + phpUnderControl
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
17/34
Continuous Integration and PHP
Continuous Integration Servers
CruiseControl + phpUnderControl
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
18/34
Continuous Integration and PHP
Continuous Integration Servers
Xinc Is Not CruiseControl
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
19/34
Continuous Integration and PHP
Continuous Integration Servers
Xinc Is Not CruiseControl
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
20/34
Continuous Integration and PHP
Continuous Integration Servers
Basic Comparison CC vs. Xinc for CI in PHP
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Execution Platform JVM PHP
Installer Windows Installer / Zip File PEAR
Preferred Build Tools ant, maven
Other Supported Build Tools
SCM support
Supported Project Langua ges anything that ant can build PHP
Jetty Apache (preferred)
XSL, JSP, Java
CruiseControl Xinc
phing
phing (unstable integration) ...
cvs, svn, perforce ... svn
Web F rontend
Extendible through Xinc Plugins (PHP)
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
21/34
Continuous Integration and PHP
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Xinc CI Server for PHP
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
22/34
Continuous Integration and PHP
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Xinc Project Config - /etc/xinc/conf.d/xinc.xmldefining the change lookup interval:checking every 5 minutes
checking modifications on svn:
update the WC if change detected
set of builders to be run:
a project can have several builders
set of publisher to be run:
general, onfailure, onsuccess, onrecovery
Xinc CI Server for PHP
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
23/34
Continuous Integration and PHP
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Xinc Project Config - /etc/xinc/conf.d/xinc.xml
phingbuilder:
calling a phing build script
Xinc CI Server for PHP
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
24/34
g
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Xinc Project Config - /etc/xinc/conf.d/xinc.xml
on failure publisher:
sending out an email for the failed build
Xinc CI Server for PHP
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
25/34
g
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Xinc Project Config - /etc/xinc/conf.d/xinc.xml
on success publisher:
make the pear package available for download
Xinc CI Server for PHP
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
26/34
g
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Xinc CI Server for PHP
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
27/34
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Xinc CI Server for PHP
Checking the build results on the web interface
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
28/34
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
build status summary:
status, build time, build label
complete build history:
access historical builds
build log message:
displaying info about build steps
Xinc CI Server for PHP
Checking the build results on the web interface
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
29/34
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
project access:
overview of projects
modification summary:
showing the number of modified files
commit logs:
showing the last comments for the change
registered artifacts:downloads, reports, documentation
Xinc CI Server for PHPChecking the build results on the web interface
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
30/34
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
PHPUnit test results:
registered as an artifact
Xinc CI Server for PHPChecking the build results on the web interface
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
31/34
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Code Coverage Results:
registered as an artifact
Xinc CI Server for PHPChecking the build results on the web interface
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
32/34
Xinc CI Server for PHPFuture of Xinc Where is it heading to?
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
Continuous Integration and PHP
8/8/2019 Continuous Integration and Php 1203717119983797 3
33/34
LinksWhere can I find more information?
improve your development processArno Schneider @Barcelona PHP Conference, Feb. 23rd 2008
8/8/2019 Continuous Integration and Php 1203717119983797 3
34/34
Thank you for your attention
Muchas gracias por su atencin!