The thing that is really missing in gitlab CI is the impossibility to define a matrix for builds. We have to do the same actions on different environments and it is very troublesome.
Agreed! That's why we are working on it this release - https://gitlab.com/gitlab-org/gitlab/-/issues/15356
For example, we have:
Models A, B, C, D Builds Debug, Release
Normally this would be
A Debug A Release B Debug B Release
And so on, and so on. In our case, where we have about 90 different models, it would be extremely useful to be able to configure, via a GUI of some kind, which of those intersections we want, rather than rebuilding the entire set for a configuration option which only affects one or two models.
At this point, the only option available to us is the Jenkins Matrix Build Plugin, which is awful in a few fairly frustrating ways, but is also the only thing that does what we want.
Examples: configuring an SCM in a matrix build job results in one svn checkout for the matrix build job and one checkout each for the cartesian product, and then, since we have a separate child job for doing builds, one checkout each for the child jobs. We don't want the matrix job to do any checkout, but if you configure it with a Git or SVN URL then it will do it regardless.