Implement CI with automated builds and tests
Continuous integration (CI) automatically builds and tests the project on a clean system and is therefore essential for further development. The DUNE infrastructure provides Docker testing images to use and several default scripts running
dunecontrol. Apparently, dune-citools is the repository for this. The DUNE GitLab instance also provides a Docker container registry to store images. This is useful as one does not rely on DockerHub for up- and downloading images.
Automated builds and tests of course require tests to be executed, see #2.
CI/CD somehow does not seem enabled for this project. Is this because there is noI simply had to enable Pipelines in the project settings
.gitlab-ci.ymlfile or do we need to ask an administrator to enable it?
- What are the capabilities of the GitLab Runners provided? Do we need to register a custom runner for this project?
What do the provided Docker images contain? We probably need to set up a new base image with all DUNE module dependencies for this project.See CI Images. We can use the provided images to build our own and add them to the image registry.
gitlab-ci.yml file specifying the following jobs (depending on state of #2):
Not possible because shared runners do not support Docker-in-Docker execution
prepstage: Install DUNE modules using
duneci-install-module [--recursive], then push to the registry of this repo.
build:default: Default release build
build:debug: Default debug build
build:tests: Build the unit and/or system tests
test:system: Run system tests
test:unit: Run unit tests
test:examples: Run example settings and verify results