Resolve "Optimize CI pipeline"
This MR optimizes the CI pipelines by doing the following:
-
Enable out-of-order execution of jobs using the needsclause -
Split tests for better parallelization -
Evaluate the parallelkeyword -
Evaluate the interruptiblekeyword
-
-
Reduce artifact size by removing unneeded object files between stages -
Refactor Docker images and make them versioned -
Create a gekkofs/coreimage for system dependencies -
Create a gekkofs/depsimage for downloaded dependencies -
Create a gekkofs/linterimage for validation of formatting -
Create a gekkofs/testingimage for running tests -
Create a gekkofs/coverageimage to generate coverage reports -
Add configuration profiles to dl_dep.shandcompile_dep.sh
-
It also improves the reporting of tests by integrating it with the GitLab UI. This required the following changes:
-
Enable JUnit reporting of tests -
Enable JUnit reporting for integrationtests-
Fix reported filename for GitLab integration -
Integrate daemon and client logs into JUnit XML
-
-
Enable JUnit reporting for unittests
-
Closes #165 (closed) #157 (closed) #166 (closed) #167 (closed)
Edited by Alberto Miranda