loading...

A successful Continuous Integration (CI) process

gharibi profile image Dr. Arash Gharibi ・1 min read

Nowadays having Continuous Integration (aka. CI process) is a vital part of any DevOps team. In 2019, we spent quite some time on our CI process and managed to fully integrate it with our DevOps workflows.

We are using 2 different technologies for the backend and frontend, that's why as the first step we had to checkout the code from 2 different repositories.

As the next step, we generate the release notes using the in-house JIRA containing the release notes. Afterwards we build the artifacts. Then we do the unit testing for the both backend and the frontend.

Very important was to know if the code quality was acceptable. We managed to do this by defining particular quality gates composed of various measures derived from the best practices.

It was also necessary to know if the artifact was deployable. Therefore as the nest step we automatically deploy the artifact on the CI server.

As the next step, we test the rest endpoints to make sure that the frontend can successfully communicate with the backend. Here the UI testing platform kicks-in. In this case we make sure the UI is working fine.

In any of the above steps, if anything goes wrong, the culprit will automatically receive an email explaining the issue and then a force rejection of the code occurs.

Let me know how you have implemented your CI!

Alt Text

Posted on by:

gharibi profile

Dr. Arash Gharibi

@gharibi

Senior software engineer, JavaScript geek, trainer and API maker!

Discussion

pic
Editor guide
 

We have multiple plans for our CI-CD process. Our main plan is for building, unit testing, publishing the code, creating artifacts. Also, it does the code quality, coverage using Sonar. If code coverage is not greater than our expected standard then we fail the build and notify the developer. We are doing security scans using Veracode. If all of the above pass then we deploy into cloud.

After successful deployment, we kick-in our BDD plan which does the functional testing.

Also, we have a separate plan for performance testing.

BDD, Perf test plans are the child plans of the main plan.

All the testing plans create reports which can be shared with stakeholders over email and also we attach these reports in the Jira story.