improve .gitlab-ci.yml to use caching or artifacts mechanism
Currently every stage of the CI system builds the full source tree from scratch. For the future one should think about either using the cache mechanism or the artifacts mechanism in order to reuse some of the source code from the previous stages.