What is continuous Integration and how this can be leveraged to enhance productivity for SSRS Report development?
Continuous Integration is a software practice of merging developer code into shared mainline repository different times a day.
Continuous Integration is an iterative process, in which we build, run test cases and deploy the components to validate the changes made by the developer. The developer will be notified with the results as soon as the changes have been made. This helps the developer to test the components as he/she develops.
Source Code Checkout for Build :
The CI framework (Build Plan) will checkout the source code from the source control. This code base will be built and the developer will be notified the outcome immediately. This helps the developer to fix the bug as soon as the changes have been checked-in. The build can be manual, scheduled or event driven (Based on the changes to code).
Validate the build:
The build can be validated by running a set of test cases. The success or failure of the test cases will help to validate the changes.
Test as we develop:
All of the above mentioned steps will happen in a short period of time (depends on the volume of the build assets). This helps to fix the bugs during the development.
Users of Continuous Integration (CI):
The CI framework mainly improves the development process. Hence the Developers and Test Engineers will greatly benefit from the process. This also helps to reduce the Release overhead for Release Engineer/Manager.
As the bug gets fixed early in the process, the business confidence will increase. Hence the project management is benefitted with the reduction in development time.
As CI is a practice , we need a tool to implement this. Jenkins CI is an open source CI tool. Below is a list of commercial CI tools in the industry
- Bamboo (Atlassian)
- TeamCity (JetBrains)
From the above details, it is prudent that Continuous Integration helps to self-test the code.
As the bugs get identified and fixed early in the development process, this helps to reduce the risk.
This process enables the cohesive and agile development methodologies.