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!