Continuous Integration (CI)

  • The code in the main branch and the build system must remain stable at all time.

  • You can see the current status of the main branch in the build batch on the GitHub repository page:

    github actions

  • Our continuous integration setup allows for automatic building and testing of our software.

  • We use GitHub Actions with the following workflows, which are automatically triggered if code is pushed to the main branch or into a pull request:

Build and Analysis Workflows

Workflow

Tools

Build Code

Linux: gcc and clang

Windows: Microsoft Visual Studio (MSVC) and Clang/LLVM for MSVC

All compilers build both debug and release configurations

Build Documentation

Python, Sphinx, and Doxygen

Static Code Analysis

clang-tidy, scan-build, cppcheck, and MSVC code analysis

Code Formatting Check

clang-format

Commit Naming Check

A Python helper script, see also Commit Naming Convention

  • For the main branch, all resulting builds from the CI (so called artifacts) are released on GitHub as nightly build.

  • We also have a webhook which directly dispatches the build status into our Discord.