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. Brainstorming Maintain a Single Source Repository. Either Subversion running locally on windows/Linux, but I will stay with www.joomlaCode.org at the beginning Automate the Build - 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)
Make Your Build Self-Testing - 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.
Everyone Commits Every Day - This is reserved to developer having a www.joomlaCode.org account and part of the development team.
Every Commit Should Build the Mainline on an Integration Machine 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. Keep the Build Fast That is an objective :-) Test in a Clone of the Production Environment 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
Make it Easy for Anyone to Get the Latest Executable Successful build (Artifacts) are only available if build is successful. Team City provide this with less effort (configuration) Everyone can see what's happening - 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!
Automate Deployment That will be, auto publish to some demo site in a configurable way. At the moment, at http://demo.waltercedric.com and http://demo2.waltercedric.com for me :-) Final words - 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"
Related Posts
-
I am a very happy user of Joomla! tags from Phil Taylor. My only complaints is that it is still not part of Joomla!® core. Joomla!® Tags is a Joomla Extension for adding tags to Joomla!® Content. Use Joomla Tags to allow content classification by keywords (Tags), can also be used to create virtual categories to add content into, over 121 days ago
-
I offer You now a new plug-in for Joomla! 1.5 that allow you to display any Freemind Mind Map using a fancy Flash applet in article content. You can put anywhere in your article the following keywords {freemind uri= width= height=} This Joomla! plugin use Freemind Flash Browser: http://freemind.sourceforge.net/wiki/index.php/Flash_browser 121 days ago
-
Twitter is a free service that lets you keep in touch with people through the exchange of quick, frequent answers to one simple question: What are you doing? A very simple module with a great output layout that require flash 9 for properly operations. I use it on my site (at the bottom) it output valid XHTML 1.0 Strict Since it is a Joomla 273 days ago
-
As I found no better tutorial on Internet, here is a very very short how to add Google analytics to Atlassian JIRA Edit the file atlassian-jira/includes/decorators/stylesheettag.jsp This file is responsible for adding CSS links in html and is included in all pages. Now put the usual code you get after creating a new analytics profile <scri 394 days ago
-
I am very proud to announce that I got granted a JIRA and Bamboo Open Source license! Extract form their site: Open Source Atlassian supports and believes in the Open Source movement - JIRA utilises a number of good Open Source components, and Atlassian developers are committers on a large number of Open Source projects. To give 396 days ago
-
I am developing for Joomla! now since the beginning but I was always disturbed by the way people are using the code repository of Joomla! (www.joomlacode.org). I am doing professional java development but was never able to reproduce the way I am working nor really did take the time to really do it correctly (help by the fact that I 652 days ago
-
I am currently in the process of moving all my open source project (7!) in CVS Head to the latest Joomla API 1.1.X. I've tried to summarize in the following table some conversion rulesIn Joomla 1.0.Xhas to be converted in Joomla 1.1.XWheremosMenuBar::startTable();JMenuBar::startTable();PHP codedefined('_VALID_MOS') or die('D 1449 days ago
-
I show You here (with screenshots) How to access Joomla Forge CVS system using the standard Eclipse CVS client. Click Read more ! 1450 days ago
relatedArticles
|