Continuous Integration Services - NatLibFi/Skosmos GitHub Wiki

There are multiple CI services currently in use that give us valuable information about how a change (whether it be a PR, latest commit or new branch) in Skosmos codebase will behave and be evaluated. The most up-to-date grading of Skosmos by these pieces of software is displayed on the landing page of this repository as badges.

Besides general code-related scrutinization of code, there exists a set of Skosmos-spesific unit and integration tests that some of the CI services will make use of. Please see the dedicated wiki page about the unit and integration tests for more details and for a comprehensive tutorial on how to setup and test Skosmos locally.

Here's a listing of services in use (in no particular order):

Codecov

New as of 2020-02 This service measures the coverage of unit and integration tests, i.e. which code lines are executed by the tests and which are not. For pull requests, it reports the changes in coverage caused by the code changes and complains if the coverage decreases.

Scrutinizer

This service rates all new pushes/PRs and gives a numeric interpretation on the changes. It can also be used to track down possible bugs and introduced issues, whether they be informational, best practice violations or duplicated code, few to mention.

Codacy

This service is aimed at automating code reviews. It reviews all code changes and reports found issues in the pull request chat log. Additionally, there exists a consolidated UI for inspecting the found issues.

Code Climate

This service gives a rough estimate on the maintainability of the codebase as well as reports the test coverage. Additionally, code issues can be looked upon in a faceted search, which is handy as there is a built-in support for multiple coding language (for Skosmos, this currently means css, js and php). Please see .codeclimate.yml for our configuration file.

Insight

This service analyzes the codebase for quality control measures. As it is completely PHP focused software, it may provide very detailed information on the issues it encounters. However, one must constantly follow its output as it only keeps the last 5 analyzes.

Sonarcloud

New as of 2019-11 This service provides yet another view on the codebase and code quality control. As the pinpoints and power of services differ, this service may provide new insight and point to unfound code issues. Please see .sonarcloud.properties for our configuration file.