Continuous Integration
with Phing and Hudson
If it hurts do it more often.
- Wisdom of the Internet

All Images have been downloaded from Google Image Search and many thanks to all creators. I am too lazy to
attribute each image.

tech.vocanic.com
Test Driven
Development (TDD)

Image Source: http://www.aaroncohen.me/wp-content/uploads/2013/04/2011-04-28.tdd_.png. Thanks to the creator.

tech.vocanic.com
Our Concerns

•  For our new architecture, we
wanted:
o 
o 
o 
o 

Tests
Build Scripts
Packaging (Client of the REST)
Auto-Deployment

tech.vocanic.com
Java World

•  Unit Testing: Junit
•  Packaging: Jar/War
•  Building: Ant/Maven
•  Continuous Integration: Hudson

Image Source: http://www.jbase.com/new/products/images/java.png Thanks to the creator.

tech.vocanic.com
Looked for PHP
Solutions

•  Testing: PHPUnit
•  Build Scripts: Phing
•  Packaging: Phar
•  CI: Hudson
Image Source: http://www.jbase.com/new/products/images/java.png Thanks to the creator.

tech.vocanic.com
Phing (PHing Is Not GNU)

•  PHP project build system based on ​Apache Ant
•  Philosophy
o 
o 
o 
o 
o 
o 

Simple XML buildfiles
Rich set of provided tasks
Easily extendable via PHP classes
Platform-independent: works on UNIX, Windows, Mac OSX
No required external dependencies
Built for PHP5

Image Source: http://www.phing.info/trac/chrome/site/logo.gif Thanks to the creator.

tech.vocanic.com
Phing (PHing Is Not GNU)

•  Features
o  PHPUnit and SimpleTest unit tests (including test result and coverage
reports)
o  file system operations
o  SQL execution,
o  CVS/SVN/GIT operations,
o  tools for creating PEAR packages,
o  documentation generation (DocBlox, PhpDocumentor) and
o  much, much more.
Image Source: http://www.phing.info/trac/chrome/site/logo.gif Thanks to the creator.

tech.vocanic.com
Code Snippet – build.xml

tech.vocanic.com
Lint and Prep

tech.vocanic.com
Test

tech.vocanic.com
Deploy

tech.vocanic.com
Phar

tech.vocanic.com
Starting a Development Server

tech.vocanic.com
Composing from Phing Files

tech.vocanic.com
Code Coverage & Test Results

tech.vocanic.com
Generating PHP Docs

tech.vocanic.com
Reports (Test Results)

tech.vocanic.com
Reports (PHP Docs)

tech.vocanic.com
Reports (Code Coverage)

tech.vocanic.com
Lots more on offer

tech.vocanic.com
Hudson

•  Continuous Integration
•  Philosophy
o  Building/testing software projects continuously
o  Monitoring executions of externally-run jobs

Image Source: http://wiki.eclipse.org/images/1/18/Hudson-bust.png Thanks to the creator.

tech.vocanic.com
Hudson

•  Features
o 
o 
o 
o 
o 
o 

Easy Installations
Easy Configuration
E-mail Integration
Test Reporting
Publishing Docs (PHP Docs, Code Coverage etc)
Plugin Support

Image Source: http://wiki.eclipse.org/images/1/18/Hudson-bust.png Thanks to the creator.

tech.vocanic.com
Security - Hudson + LDAP

tech.vocanic.com
Add Plugins

tech.vocanic.com
Set Up a Job - Basics

tech.vocanic.com
Set Up a Job - Source Code

tech.vocanic.com
Set Up a Job – Triggers

tech.vocanic.com
Set Up a Job – Post Run

tech.vocanic.com
Job Dashboard

tech.vocanic.com
Console Output

tech.vocanic.com
tech.vocanic.com

2013 10-28 php ug presentation - ci using phing and hudson