Closes #12 (closed)
This MR creates a structure of ci jobs that can be inherited by other projects to avoid code repetition. Especially the build jobs are serparated in protected and unprotected, so that some that run from protected branches will also push artifacts to the gitlab registry, but the ones running from unprotected branches, will go through all the same steps but not push artifacts, so that even unprotected branches can go through the ci cycle and catch errors that could appear after merges to protected branches.
Note
This MR must be merged before other relevant issues are closed for subprojects, because the subprojects need to reference a specific branch for this project in order for inheritance to work.