Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • D dune-structures
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 5
    • Issues 5
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 2
    • Merge requests 2
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Lukas Riedel
  • dune-structures
  • Issues
  • #3

Implement CI with automated builds and tests

Description

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.

Open Questions

  • CI/CD somehow does not seem enabled for this project. Is this because there is no .gitlab-ci.yml file or do we need to ask an administrator to enable it? I simply had to enable Pipelines in the project settings
  • 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.

Proposal

Add a gitlab-ci.yml file specifying the following jobs (depending on state of #2):

  • prep stage: Install DUNE modules using duneci-install-module [--recursive], then push to the registry of this repo. Not possible because shared runners do not support Docker-in-Docker execution
  • 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
Edited Apr 12, 2021 by Lukas Riedel
Assignee
Assign to
Time tracking