[4.2] Drone: Parallelizing tasks #37831
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of Changes
A downside of our current Drone setup is the long build time for even the few tests we have right now. The tests currently take about 33 minutes to run completely, mainly because large parts of it are executed sequentially instead of in parallel. This PR tries to parallelize the system tests where possible. The codeception "build" step is executed just once and before all other system and api tests. Afterwards, all system and api tests are executed first with the minimal PHP version for the given RDBMS and then with the maximum PHP version. That means that different RDBMS versions are executed in parallel and the same RDBMS versions with different PHP versions are run sequentially.
To separate the tests properly from each other, the whole setup is copied each time from the common folder to a folder inside of each docker instance and the tests are then executed from there. That prevents the tests from interfering with each other.
Since the whole site has been copied from the common folder to the docker instances internal folder, the default _output folder for screenshots wont work. I tried to set the common folder as target again, but couldn't honestly test this yet, since the tests didn't fail for me...
The PHPUnit PHP8 patch which we added some time ago has been removed again, since it has been failing for months already and has been obsolete.