• What is Continuous Integration? • What is Jenkins? • What is Sonar? • QA Tools for PHP • Demo • http://bit.ly/geekcampsg-ci-php Agenda 2 Saturday, 18 August, 12
What is Continuous Integration? • Continuous integration (CI) implements continuous processes of applying quality control — small pieces of effort, applied frequently. • Quality control as a continuous process - in small chunks rather than at the end of a development cycle / iteration. • Merging of smaller manageable change sets instead of large ones. 3 Saturday, 18 August, 12
Important Ingredients • Version Control Software for your source code (Git, SVN, Darcs). • Self-Testing Code. (eg. Unit Tests, BDD, Selenium) • Agreement on Agile processes to adopt (in your team). • Bonus: • Project Management Tool. (eg. Pivotal Tracker, JIRA) • Branching Strategy (for development & deployment) 4 Saturday, 18 August, 12
Getting the most out of CI • Keep stories small & granular (smaller change sets). • Merge early, merge often. • Reduce the pain of resolving conflicts later. • Write tests that runs fast. • Use Mocks and test doubles as much as you can. • Automate, Automate, Automate. (or one click action). 6 Saturday, 18 August, 12
What is Jenkins CI? • Application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. • Building/testing software projects continuously. • Monitoring executions of externally-run jobs. • http://jenkins-ci.org/ 7 Saturday, 18 August, 12
What is Sonar? • Sonar is an open platform to manage code quality. As such, it covers the 7 axes of code quality: • http://www.sonarsource.org/ 8 Saturday, 18 August, 12
QA Tools for PHP • Template for Jenkins Jobs for PHP Projects by Sebastian Bergmann (of PHPUnit fame) • Kitchen sink of Quality Assurance tools. • Build automation with Apache Ant. • Compile PHP? No... :( (unless u use HipHop) • http://jenkins-php.org/ 10 Saturday, 18 August, 12