Reduce complexity of GitLab QA and make it easier to contribute
GitLab QA is a quite complex project in terms of a structure and how to add tests.
However most of the complexity stems from the essential complexity.
It might be hard to simplify things, but it should be easier to add tests and work on GitLab QA.
We should spend some time on thinking how to improve that. Some ideas:
Make it fully GDK compatible
It means that we should be able to add tests only using a GDK, instead of building docker images and running gitlab-qa
CLI tool to spin-up environment.
Adding dotenv and #73 (closed) / https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14701.env
to make it super easy to run bin/qa Test::Instance
without additional arguments is the next thing that comes to my mind.
Introduce GitLab QA context component
In order to make it work, we would need to introduce Gitlab::QA::Runtime::Context
class, that would detect the context GitLab QA is going to be executed in, and raise an error if we are trying to tests things that are not available in GDK. GDK is not a complete GitLab installation / environment.
Example: testing rake tasks when GitLab under a test is a fully Omnibus-configured docker container / testing rake tasks when GitLab is a GDK instance with rake tasks instantly available. We should support both, and use Runtime::Context
as a strategy provider.
Improve documentation
Good docs are always important. There is a huge room for improvement here.