Description
Current setup:
The current setup is based on the fact that maven is starting a very old image of GitLab (version 12.9.2-ce.0
) and is then executing some integration tests against this instance of GitLab.
Since I am maintaining this library I do not see any value in those tests.
They are slow and very flaky.
Contributors try to extend existing integration tests and sometimes those are failing because the GitLab version is outdated.
Testcontainers attempt:
There is an issue #925 and a pull request #935 where some work was made to replace the current setup based on maven with something based on Testcontainers.
This is almost finished but I never took the time to finish it.
Even if this would allow to update GitLab, I fear to face the same issue: it takes time to start GitLab inside a container and the test might continue to be flaky.
Decision:
- I will disable the current integration tests (they are too slow and too flaky) now.
- I will work on more reliable solution
New solution:
This should be based on a mock server (I am currently working with https://www.mock-server.com), in order to have fast and reproducible HTTP responses during our integration tests.
The maintenance of the stubs (the responses corresponding to given http requests) is a real challenge over time.
I do not want to write them manually and I would prefer capturing them at development time, by running the tests locally against a real GitLab instance (probably started locally, with or without docker).
This way we would always have a script available to renew or extend the mocked responses.
But in the CI we would have very fast and reproducible HTTP responses. Running the test suite would not require any docker or any gitlab installation.
This issue is open to collect feedback.