In my organization we are using Jenkins as our CI tool. The core build is followed by multiple jobs consisting of unit tests, integration tests, SAS integration tests, PMD, all running in parallel, running over 3000+ tests which took the entire build pipeline to run over 1 hour 30 minutes to produce the build artifacts. The amount of time taken was too high and it was very frustrating specially when the tests failed, as multiple developers would check in files while the earlier build was in progress, the next job would start and by the time issue was identified and fixed, it would take more than 4/5 hours to get a stable build. QA would not get build artifacts on time. Valuable development time was getting lost. There were frustrations all around.
This persistent issue pushed me on a quest to reduce the CI build time.
Today Ajay moved our Jenkins VM to a box having hybrid disk and now the build pipeline time has reduced from 25 minutes to 15 minutes and all the test jobs run in less than 10 minutes!!! And I am feeling very happy and satisfied on my quest of reducing the build time. This journey took more than two months, during which I have learnt a lot.
- Jenkins – http://jenkins-ci.org/
- CI – http://en.wikipedia.org/wiki/Continuous_integration
- Mklink – http://technet.microsoft.com/en-us/library/cc753194.aspx
- MySQL – http://www.mysql.com/
- SSD – http://en.wikipedia.org/wiki/Solid-state_drive
- Hybrid disk – http://en.wikipedia.org/wiki/Hybrid_drive
- HSQL – http://hsqldb.org/
- H2 – http://www.h2database.com/html/main.html
- Memsql – http://www.memsql.com/
- MySQL is bazillion times faster than MemSQL
- Tmpfs – http://en.wikipedia.org/wiki/Tmpfs
- RAM Disk Software Benchmarked