CruiseControl Common Build Process

  • Cron automatically switches project's working directory into the latest tag or branch based on which of them has the latest revision number.
  • Project's SVN log were constantly checked by CruiseControl and once detected build process will start.

  • Pre-Build contains code tests and analysis that needs be executed before project deployment.
    • SVN Update will retrieve any files missed by the last time the cron switches repository url.
    • PhpDocumentor creates documentation of project's source codes.
    • PHP_CodeSniffer analyzes codes and compares them against Zend standards.
    • PHP Mess Detector analyzes codes based on rulesets like codesize, unusedcode, and naming.
    • PHPUnit runs test cases and detects failures thus marking the build as failed.
  • Deploy task commences right after the project passed all tests on pre-build process. Codes were being sent on a remote server for staging and furhter tests. For now, deploy simply switches remote working dir or referred to as the nightly build.
  • Post-Build contains tasks that needs to be excuted after the project was deployed.
    • Siege conducts loadtests with a simulation of concurrent users hitting specified urls.
    • Xdebug remotely profiles codes and creates visual graph based on retrieved cachegrind result.
    • Wapiti (manually executed due to high consumption of processing time) generates report of different type of vulnerabilities that may exist on your project.
    • Yslow (manually executed) analyzes web pages and suggests ways to improve performance based on a set of rules for high performance web pages.
  • Merge all logs
  • Email build result to all team members
  • Create build result's visual graph
  • Create project's artifacts
http://docs.google.com/present/view?id=dfc724c8_4cmdtpqhs

Comments

Popular posts from this blog

Remote Deployment with Ant and Rsync

Site Performance Enhancement