For almost two years now we use Hudson - the Continuous Integration server - for automizing tests of the FLOW3 and TYPO3 Phoenix projects. Since then this tool has been an invaluable help for spotting bugs and integration issues right after each commit. Inspired by Martin Fowler's CI article we always sought to automize the testing and release process but it needed another book to really enthuse me for the topic.
Always wondered how Flickr is able to deploy more than 10 times a day? The not yet published book Continuous Delivery by Jez Humble and David Farley summarizes many great ideas and best practices of continuously delivering software and gives many answers you might have had for years. Most of it sounds pretty familiar and evident - but I guess that's always the case with pattern books. It's again the compilation of all the agile practices in one book which makes it a valuable read.
Why I mention this now? Well, Karsten and I have spent the last week with enhancing our Phing-based build scripts so that we finally can trigger a release of FLOW3 with a single task run by Hudson. When we're done, a release will not only take less time (15 minutes watching the script instead of 1 day manual work), it also excludes many sources for errors - or at least makes them repeatable ...
It's a lot of work to automize a release but currently it looks like we'll be able to finish the biggest part for the next FLOW3 alpha release. Ah, we didn't mention that: 1.0.0 alpha 8 will be released this Friday!
The new scripts (which are, by the way, located in a directory "Build" of the FLOW3 distribution) are only the beginning. In the future we plan to have proper system tests with and without Selenium which will play an important role in the development of the TYPO3 Phoenix user interface. We'll keep you posted on that!
Now if you wonder why your lights go out or door bell rings somewhen Friday afternoon then don't worry, that's only a few side effects of our new release script. We can't test everything on beforehand - or do you know a unit testing suite for Phing scripts?