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
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
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