Continuous Build for Joomla
Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. This article is a quick overview of Continuous Integration summarizing the technique and its current usage. Martin Fowler about continuous integration
Things get clearer in my mind…I will use a set of Open Sources software to reach this ambitious goal.
Either Subversion running locally on windows/Linux, but I will stay with www.joomlaCode.org at the beginning
- I am currently evaluation Maven for PHP but already have ANT script to build components and plugin for #Joomla 1.5 (they are not generic enough at the moment)
- PHP UNIT tests if available with be run at this stage using PHP command line.
- Selenium to automate components testing across many platforms, as it runs in many browsers and operating systems, and can be controlled by many programming languages and testing frameworks.
- Some standard utilities to perform standard #Joomla! processes: login, logout for Apache ANT or Selenium
- I will develop either a ANT plugin or a set of Selenium test cases for deploying and removing
- component: install, publish, remove
- plugin: install, publish, remove
- All these utilities will be available under GPL v3 and as such free to reuse, and improve.
- This is reserved to developer having a www.joomlaCode.org account and part of the development team.
I will use TeamCity continuous build server as it is free for personal use (limited to 20 concurrent build), run on Windows and #Linux but require a java VM to run (may not be wanted in a PHP environment). Anyway with ANT, it will be possible to use another build server like Cruise Control or PHP Under Control.
That is an objective 🙂
Joomla! Build farm
- I can imagine a set of #Joomla instances, ideally 5 of each version, aka #Joomla! 1.5.3 to #Joomla! 1.5.8 and #Joomla! 1.0.10 to 1.0.15
- Joomla instances will be recreated at build time (files and databases), that mean #Joomla! will get newly installed and removed in case of successful build
- All #Joomla! instances will be running with XAMPP, ideally on port not available to the outside world for security reasons
Successful build (Artifacts) are only available if build is successful. Team City provide this with less effort (configuration)
- A guest account will be available or a free public area with limited access to see the result of builds.
- RSS feeds, emails and Instant messaging (Jabber) out of the box for end users or developers!
- I will provide a ready to use package for Windows and #Linux and all scripts, so anybody will be able to run it also on your own.
- Critical part will be documented in my WIKI at http://wiki.waltercedric.com direct link HERE
It seem that nobody is providing such a package as I am after only one day at the top of search results in Google “continuous build joomla”