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.
- build elos
- run the unit tests
- integrate the unit-test report into GitLab
- 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
- integrate the coverage report into GitLab
- publish the KPIs to a time series database
- build the documentation
- run the BaseOS Lab tests to test for other targets
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.
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.
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.
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.
For a documentation on how to add/modify follow the GitLab CI documentation