This should work, but coveralls upload api keeps complaining with error
```
Client error occurred. status: 422 Unprocessable Entity
Couldn't find a repository matching this job.
```
on pushes and thus pull-request pipeline runs.
This change migrates the GitHub Action workflows to use the
`runTests.sh` wrapper. Thus making it easy reproduciable locally
and have the exact same environment and workflow which ease
debugging on pipeline failures.
Functional database matrix may be increased in a dedicated follow-up
change and is avoided for now.
Note: composer normalize check is temporarly disabled, due how runTests.sh
are handling composer.json changes. composer.json is reverted, thus
composer.lock not matching composer.json. Good solution for this has
to be searched.
Case-insensitive filesystems cannot distinguish properly for
file and folder names with different caseings. This leads to
unforseable issues on these systems, like default partition
on MacOS devices from apple or eventually Windows systems.
This change configure phpcoverall and the chain explicitly to
use folders for the files which differs from the default of
`build/*` to avoid conflicts on case-insensitve filesystems
and prepare for introduction of the upcoming implementation
of TYPO3 core recommended `Build/` structure.
Also sync the test matrices of the `predefined` CI jobs with those
from the Composer-script-driven CI jobs.
This change does not add any 7.4-only PHP language features.
Fixes#577
The `typo3/minimal` package is not maintained very much, and currently
cannot be used as a requirement to install the latest TYPO3 development
version (as it still depends on `dev-master`, not on `dev-main`).
In addition, not depending on it will allow us to find any missing
dependencies in our requirements that so far have been masked by
the `typo3/minimal` dependencies.
PHP version numbers need to be strings: If the version `8.0` were
treated as a number, the YAML parser would happily convert it to `8`,
hence dropping the minor version number.
Having a consistent structure and order between the CI jobs and the
code coverage generation job makes understanding the GitHub Actions
configuration easier.
It also allows having a shared Composer cache between the non-coverage
jobs and the coverage job.
There is no need to have the code coverage data directly generated by
the tests run in a non-hidden directory. So now the code coverage is
recorded within `.Build/coverage`.
Only the merged coverage data still needs to be located in `build/logs`
as Coveralls (which we're planning to use) relies on this.
The installed Composer packages will be different depending on the
major TYPO3 version being tested and on the strategy for the
dependencies (highest, lowest). So it makes sense to have
separate Composer caches for these versions in order to avoid
cache misses.
Composer versions 2.2.0 and 2.2.1 have a bug that breaks PHPUnit.
Until version 2.2.2 is released with a fix, we need to keep to
Composer 2.1 to keep the tests from breaking.
See https://github.com/composer/composer/issues/10387 for details.