Development Infrastructure

This document describes the development infrastructure used by the nalu-wind project.

Docker Container

The docker container ecpe4s/exawind-snapshot is build by an external collaborator in the E4S project. Its definition is at https://gitlab.e4s.io/uo-public/exawind-snapshot.

It is based on an Ubuntu with GCC on which spack-manager is used to install exawind+hypre+openfast.

It is build and pushed to Dockerhub daily.

Continuous Integration

There are currently two different systems the continuously check the code of this project.

GitHub Actions

The github actions workflow runs on every pull request towards master as well as all commits on master.

It does the following things:

  • Style Check of the CPP code using clang-format with clang version 13

  • Run the unit tests

    • Uses the docker container to allow to reuse the third party libraries

    • Rebuilds nalu-wind with the source from the commit on which the ci is run

    • Run all test with unit in the label using ctest

Daily Regression Tests

Additionally, the project is tested more extensively on some machines at NREL. The results are collected at CDash. For more info see Adding Testing Machines to CDash.