GitLab CI for elos

The goal of this is to provide a gitlab-ci setup which can be used to build and test the elos build on premise in self hosted gitlab instance. The official open source repository uses the GitHub-CI.

Aim of the Pipeline

  • build elos

  • run the unit tests

  • run the smoke tests

  • run the integration tests

    • integrate the integration test report into GitLab like the unit tests

  • lint the source code

  • run benchmarks

  • create a coverage report

  • publish the KPIs to a time series database

  • build the documentation

  • run the BaseOS Lab tests to test for other targets

How to enable the pipeline for a repository

To enable this pipeline in elos under Settings > CI/CD > General pipelines > CI/CD configuration file enter:

./gitlab/gitlab-ci.yml

Or follow the GitLab pipeline documentation for all the options.

Exported configuration variables

The gitlab-CI setup exports some variables which can be configured by the gitlab instance ti should run on. For details how to set those variables see gitlab:define-a-cicd-variable-in-the-ui.

SOURCES_URI:

Set this to a base URI to checkout dependencies like safu and samconf:

SOURCES_URI = https://${GIT_USER_TOKEN}@mygitlabinstance.com/<group>/

The default is the public github repository group https://github.com/Elektrobit/elos.

ELOS_DEPENDENCY_CONFIG:

Set this to define configuration file for install_deps script. See https://elektrobit.github.io/elos/ci/index.html for details about options to tune each dependency checkout and build.

ELOS_DEPENDENCY_CONFIG = ci/dependencies_emlix.json

The default uses a configuration file which in turn uses SOURCES_URI to checkout all dependencies.

How to extend the pipeline

For a documentation on how to add/modify follow the GitLab CI documentation

known issues

  • right now it is constrained to shell runner because docker in docker doesn’t work for the moment