Improve concurrency: replace experimental package with core script
Problem/Motivation
We are currently using "phpunit" or "paratests" binaries to run tests. "paratest" was intruduced as a way to speed up the total running time of a pipeline.
Several improvements were made to the GitLab CI runners, among those loading folders and database in ramdisk, speeding up the execution of tasks.
In addition to that, the Drupal core gitlabci templates are being worked in https://www.drupal.org/project/gitlab_ci_testbed_for_drupal_core and when working on this issue #3374070: Experiment with concurrency package it was proved that the scripts included in core to run tests are more efficient and leverage the concurrency capabilities of apache.
So that means that we can improve the way to run jobs concurrently. In addition to the performance gain, we get the same output and artifacts that we normally get when running DrupalCI for contrib modules.
See the contrib gains running parallel tasks with:
* Paratests (4 minutes 24 seconds): https://git.drupalcode.org/project/api/-/jobs/72378
* Drupal core "run-tests.sh" (2 minutes 28 seconds): https://git.drupalcode.org/project/api/-/jobs/72384
Steps to reproduce
Set _PHPUNIT_CONCURRENT=1 in your variables. Your tests will be run in parallel but you will lose some features, like the browser_output folders.
Proposed resolution
Replace the experimental "paratest" for the well-tested script included in core to run the tests.
Consider setting _PHPUNIT_CONCURRENT to 1 by default. It's currently set to 0 as "paratest" was experimental, but we are removing it now in favor of a well-tested and used way of running the tests concurrently.
See the same job run:
* Non-concurrent (phpunit): https://git.drupalcode.org/project/api/-/jobs/72414
* Concurrently (run-tests.sh): https://git.drupalcode.org/project/api/-/jobs/72427
Remaining tasks
MR