We are using Jenkins as a CI system. Each internal PR is checked on the CI, and proper status is added to the PR.
Currently we run several checks:
| Check | Description |
|---|---|
| Commit Message check | Check if commit message has proper format (see Development workflow) |
| Copyright notice check | checks if changed files have proper copyright notice |
| Style checking | Runs clang-format with style described in .clang-format against committed code |
| Build RT1051 | Compiles code for RT1051 |
| Build Linux | Compiles code for Linux, runs Unit Tests, and looks for static variables |
The current CI pipeline is described in Jenkinsfile that is in sources, if a developer needs to
add some check, it is enough to update the file, the PR will be built with new rules.
In the job description, we may define docker image to use and the parameters that should be set,
but this may require more knowledge, the easiest way is to use node.label.
Docker templates are defined directly in Jenkins UI, and this simplifies Jenkinsfile