for those of you who wonder what CI is, here’s my several thoughts on the technology and what items does it bring to the table as far as Software Engineering is concern:
- Improves Code Quality – Continuous Integration means all codes being done on a given time frame (everyday or every other day) will be synchronize on a dedicated environment. A deployer will perform the nightly build execution and report issues that he/she might encounter during the course of the build.
- Application Performance and Reliability – If all codes are in sync and being tested in a continuous manner, bugs and depedency issues will be visible, fixes can be implemented and all of us will have a good sound sleep on weekends. 🙂
- Scheduled Build – You don’t have to rant about your boss telling you to schedule a build on the weekend just because he/she committed to a client that a product will be shipped on Monday. 🙂 You can schedule a build and have the working PC do the dirty work!.. and what if there are issues?… @4
- 4) Web-based – Access to CI remotely is one of the major requirements listed when the team of developers are just planning this tool and for obvious reasons. 🙂 What if the pre-scheduled build fails? What if there are issues encountered during the build?… and how do I notify the people responsible for this issues?
- Notification mechanism – CI tools also offers a email notification mechanism to notify the people responsible for their dirty work.
- RSS Notification – enought said. – Let developers and other team members know the status of every build. Embed RSS feeds.
- Support for Respository Technologies – suchs as SVN, CVS, Harvest.
- JUnit / JMeter reporting – Performance Reporting.
Note that these are just the basic functionalities a CI tool should have (well these are the important ones and if anything from the list is missing from your “researched” CI, then its no good!).
Download the Latest and Greatest CI tool -> http://hudson-ci.org/