Skip to content

Continuous Integration

Philipp Bucher edited this page Mar 24, 2021 · 9 revisions

Continuous integration means that changes in a software are frequently committed to a shared repository. This has many advantages such as detecting errors sooner, less possibilities for conflicts and others. For a more detailed explanation it is recommended to take a look at the corresponding GitHub page.

In order to avoid the introduction of errors from the commits, the code is continuously checked. This can include compiling, testing, but also other things like linting or code coverage checks.

In Kratos every pull request has to pass a set of tests in order to be merged. Those checks are the compilation and testing of the Core and several Applications on different systems (e.g. Linux, Windows) with different compilers (e.g. MSVC, GCC, CLANG, Intel). If a required check fails, the pull request cannot be merged, even if it was approved! Most of those checks are done with Github Actions. It is a (for open source projects) free service provided by GitHub to automate tasks related to software development.

Current configurations

Different configurations are compiled and tested, e.g. with GCC and CLANG under Linux and MSVC under Windows For details please check the actions configuration files in the workflows folder

CI check before merging pull requests

Nightly build

Rules for adding an application to the CI

For adding a new application to the CI, the Technical Committee decided that the following is required (see here):

  • The Application must have tests
  • Having at least two maintainers providing continuous support in case of CI failure. In case of no support the application would be removed from the CI.
  • There are timers which limit the testing time for each applications (1 minute per Application for small tests, 15 minutes per Application for nightly tests). So the total CI time cannot be abused by one application. Please note that the CI machine is considerably slower than a normal desktop.

So applications which want to be part of the CI can create a PR adding the application to it. These PRs should be approved by the Technical Committee.

FAQ

Further information (not only for developers)

Project information

Getting Started

Tutorials

Developers

Kratos structure

Conventions

Solvers

Debugging, profiling and testing

HOW TOs

Utilities

Kratos API

Kratos Structural Mechanics API

Clone this wiki locally