I would love to see a situation where we could predefine a matrix and then toggle different products on or off.
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.
I have less than 20 environments to configure and it is already extremely messy in gitlab CI.
So messy that at the moment it is just a little toy and it will never actually work in production.
With 90? No there is no way you can create a reliable gitlab CI with so many environments.
Beside there are several bugs in gitlab CI and support is basically useless even for an organisation like ours where I believe we are one of their largest costumers. Our tickets (or at least the one I create) are simply ignored.
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.