Continuous Integration and Continuous Deployment for C and C++ Programming for Embedded Systems
The client is as software development company and they follow standard approach for development and testing like they use version control to store code, follow proper coding convention, write test cases for unit tests, etc. They do all these tasks manually which increases time and effort applied in the project. The client wanted to minimize time and effort by automating these process which will increase efficiency.
We use automated process for continuous integration and deployment in our development.
The client is following all practices but they have no any automated process to verify all these practices for e.g. which can automatically check that code standard is properly followed or not. They are doing code review manually. Once all the development branch is merged then they need to know whether code compiles properly, and if the code is successfully compiled, then does it pass all unit tests.
The client majorly does development in C/C++, and there are no proper tools available, which suit the client’s need.
We studied all the standard which client follows and suggested to use Jenkins open source tool which allows continuous integration and continuous deployment. We built plugin of Jenkins as per our requirement and also developed C++ Programming for Embedded Systems
We studied code standard and created Jenkins plugin which will review code for code standard as it is committed to version control. This plugin will generate a report in HTML format and send to last committer with other respective stakeholders of the project.
We created a plugin for automatically compiling and testing project as per the configuration is done by the client and sending a report of compilation. If compilation completes successfully then the plugin will execute test cases and send a report of pass/fail tests.
We set up the whole environment of this CI/CD in client’s development environment and provided all the required doc for the build, setup and use plugins.
Using the provided solution client’s many development tasks have now been automated and their development efficiency and accuracy is increased as they do not need to put much time and effort in code review and testing and other related tasks.