Continuous Integration is used to avoid integration hell. When integration of source code from developers is delayed; there are more chances of problems due to dependencies in the code. Continuous integration tools automate the process of integration which can be scheduled multiples times in a day or on every commit of each developer.
Our Client for vteam #366 has teams in three different countries US, Australia and Pakistan. He wanted to ensure that every commit by any developer should be error free. Client wanted to automate the compilation of projects, deployment on integration server and running test methods.
It was required that compilation of code, deployment and test methods should run on every commit and all team members located in different locations should be notified about the status of integration process. It was also required that all major areas of the application are tested so that each team member knows that last commit did not break anything in the application. We were allowed to choose any available option which meets all the requirements but does not take too much time to implement.
vteam #366 researched on the available options and found that there are many tools available. Following are few of those good tools mentioned here.
- Microsoft Team Foundation Server
Used Solution and Benefit:
We selected TeamCity out of available options due to following reasons:
- It is free for average level of use (limited build configurations).
- Comprehensive help is available.
- It is easy to setup.
- It has nice web based user interface to control all operations provided by TeamCity.
- It allows adding 25 build configuration in free solutions and unlimited steps in each build configuration.
- It allows all kind of steps to configure which are required in continuous integration such as compilation, deployment, running test methods.
- Allows configuring many source controls.
vteam #366 configured TeamCity to run build configuration on every commit in subversion source control. Following are main steps involved in this process:
- As a first step, it builds our Visual Studio Solution to ensure there are no compile time errors.
- In second step, it runs test methods which were developed in Test Project of Visual Studio; vteam # 366 covered all major areas of the project. Previously, vteam #366 were running these tests manually but now it runs on every commit which helps all team members to know that last commit was successful or not.
- As a last step (if previous steps are successful) it deploys our applications, Billing APIs and Admin Portals, developed using ASP.NET WEB API and ASP.NET MVC respectively on development and integration servers.
vteam #366 has implemented continuous integration to meet Client requirements. All above processes are automated and every team member is notified with the status of each commit. Now, in case there is a problem, it requires less time to fix because there are fewer changes in each commit.