Tackling delivery pipeline challenges
Customer was following an Agile Development process but had challenges in the delivery pipeline. One of the key challenges was the Build, Test and Release (BTR) process automation.
Window Services to be validated while deploying into QA/Production environments based on following pre-conditions.
1. If service is already in stopped state, we have to copy the latest source code to QA/Production environment and we should not start that service.
2. If service is in running state, we have to test whether that service is performing any action. If it is, then, deployment of that service should be done and mark Build as success.
3. If service is in running and not performing any action, we have to stop the service and deploy the latest source code and start automatically.
4. Prepare backup plan if any exception is fired during any stage of Deployment, Stop, Delete, Copying Source code, Create and Start Service.
Using Jenkins we can write scripts using Post Build Action plug-in. For configuring single window
service, we have to write many script lines in Jenkins job configuration manually. If we want to implement same for multiple window services, we need to find some generic solution for executing script lines in Jenkins. For this, we created a new bat file, which accepts some parameters like Service name, Machine IP, Source Path, Jenkins Path and executes multiple commands dynamically. Implementing this bat file, we are able to handle multiple window services successfully in Jenkins
Our solution provided several key benefits to the customer, including:
1. Reduction of time and hence cost by about 60%
2. Good collaboration amongst Dev, QA and IT admin
3. Early warning to dev of possible bugs
4. Alerts to IT Admin for improper configuration, etc.