Skip to content
Commit b74dc17a authored by Ramon Nou's avatar Ramon Nou
Browse files

Resolve "Optimize CI pipeline"

This MR optimizes the CI pipelines by doing the following:

- [x] Enable out-of-order execution of jobs using the `needs` clause
- [x] Split tests for better parallelization
  - [x] Evaluate the `parallel` keyword
  - [x] Evaluate the `interruptible` keyword
- [x] Reduce artifact size by removing unneeded object files between stages
- [x] Refactor Docker images and make them versioned
  - [x] Create a `gekkofs/core` image for system dependencies
  - [x] Create a `gekkofs/deps` image for downloaded dependencies
  - [x] Create a `gekkofs/linter` image for validation of formatting
  - [x] Create a `gekkofs/testing` image for running tests
  - [x] Create a `gekkofs/coverage` image to generate coverage reports
  - [x] Add configuration profiles to `dl_dep.sh` and `compile_dep.sh`

It also improves the reporting of tests by integrating it with the GitLab UI. This required the following changes:

- [x] Enable JUnit reporting of tests
  - [x] Enable JUnit reporting for `integration` tests
    - [x] Fix reported filename for GitLab integration
    - [x] ~~Integrate daemon and client logs into JUnit XML~~
  - [x] Enable JUnit reporting for `unit` tests

Closes #165 #157 #166 #167

See merge request !103
parents fa3eea49 4e960645
Pipeline #1926 passed with stages
in 22 minutes and 4 seconds