Situation
- For one of our clients, Build is taking 8 hours and nightly build is failing frequently.
- Test case execution is consuming more time than the compilation.
- Low confidence levels for developers on nightly builds and subsequently during integration cycle.
Approach
- We reviewed the whole set of build scripts being used and test case suite to check how we can refatcor them.
- Verified the build infrastructure i.e., build server capacity from hardware point of view.
- Feasibility study done to check how a CI environment help in giving faster feedback on the quality.
Solution
- Refactoring done for build scripts to make modules compilation parallel (wherever possible).
- Some test cases are selected (which don’t require external services like database) to run as part of the build.
- CI environment (using open source cruise control) is established to run builds per commit and execute only above set of test cases as part of the build.
- Set up low-cost remote agent machine which will run remaining test suite once per day.
Results
- Build took only 1 hour and gave faster feedback to dev team.
- CI environment provided good confidence to dev team.
- Team is able to implement more best practices.
- Effective use of existing build infrastructure (hardware) ensured no further cost is required.
- This helped the client in ensuring smooth release management.