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.
This change adopts the well known runTests.sh from TYPO3 core
and related extensions as basic scripts and test execution
center. Main benefit of this implemenation is, that these
commands are behaving the same on all systems and ci, thus
increasing interoperability and easier transforming of commands
between systems - which ease the way to rerun or debug failed
tests locally after detected in ci (GitHub Actions, Gitlab CI).
Available suits and options are aligned to this project needs,
and will be updated if needed. To display available commands:
```shell
Build/Scripts/runTests.sh -h
```
Generic tasks and options (incomplete):
* `-s composerInstall` normal install, for code quality checks
* `-s composerInstallLowest` and `-s composerInstallHighest` to
install dependencies with lowest and highest possibilities for
all dependencies, based on selected php-version, core-version
and so on. This helps to build fast a wide range of testing
matrix for unit- and functional tests
* `-p <7.4|8.0|8.1|8.2>` defines which php version is used for
executed php and composer scripts, like unit or functional
tests, composer installs and so on
* ensure support for following databases for functional tests:
- postgres <10|11|12|13|14> default: 10
- mysql <5.5|5.6|5.7|8.0> default: 5.5
- mariadb <10.2|10.3|10.4|10.5|10.6|10.7> default: 10.2
- sqlite
This can be controlled with a couple of options:
-d <sqlite|mariadb|mysql|postgres>
-a <mysqli|pdo_mysql> (for -d mysql or -d mariadb)
-i <10.2|10.3|10.4|10.5|10.6|10.7> (for -d mariadb)
-j <5.5|5.6|5.7|8.0> (for -d mysql)
-k <10|11|12|13|14> (for -d postgres)
* selection of core can be choosen with the `-t` flag,
also only v11 currently available. This is already
a preparation for multi-core testing or for further
version shiftings.
* included cgl (php cs fixer) with dryrun as suite
* add phpstan and phpstan generate baseline suites
Resolves#94
typo3/testing-framework provides some template files as kickstart
for project and extension based testing. They are properly marked
to be copied and not used directly from the package. The reason
for this recommendation is, that project should make adjustments
to theire concrete setup, like coverage settings and so on.
This change clonses the corresponding template files from the
testing-framework to folders in this extension, adjusts needed
paths and ensure testing is still working. With that this best
practice example follows the recommendation and best-practice
for typo3/testing-framework usage.
Tasks
* provided cloned unit- and function test configuration and
bootstrap files in `Build/phpunit/`
* updated cloned phpunit configuration files to be phpunit v9
compatible, removing old coverage tag as this is done by
cli options in this repository anyway
* add proper xml namespacing to cloned phpunit configurations
* adjustes config paths in unit and functional testing calls
provided as composer scripts
* adjusted phpunit configuration files in documentation
Resolves#533
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.
This change raises the minimum versions for TYPO3 core packages up
to 11.5.4 as minimum version, which contains needed fixes directly
or through raised core package dependencies to avoid corresponding
php deprecation and return type hint issues with symfony/routing
during composer minimum tests with PHP8.1. Beside this, we need at
least this version as core ships with QueryBuilder forward combat
methods `executeQuery()` and `executeStatement()` only since this
version.
See: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72430
Additional some dev dependencies are changed to avoid conflicts
with recently added core v11/v12 support (root compoer conflicts).
This requires to add (temporarly) two forks as repositories until
fixes are merged and released.
Fixes#635
JetBrains created a new product named `Fleet` as
lightweight editor. This tool tends to write it's
config files to `.fleet/` folders, like all of the
IntellJ based IDE's like PHPStorm uses the `.idea`
folder.
This change adds this config folder to .gitignore
to avoid adding this folder to a patch if `Fleet`
is used to create a patch.
* [FEATURE] Allow installations with TYPO3 12LTS
Part of #519
* Update CHANGELOG.md
Co-authored-by: Chris Müller <2566282+brotkrueml@users.noreply.github.com>
Co-authored-by: Chris Müller <2566282+brotkrueml@users.noreply.github.com>
* [TASK] Upgrade to the testing framework V7
This is required to also run the tests on TYPO3 12LTS.
* Update CHANGELOG.md
Co-authored-by: Lina Wolf <48202465+linawolf@users.noreply.github.com>
Co-authored-by: Chris Müller <2566282+brotkrueml@users.noreply.github.com>
This way, the Composer dependencies are consistently in
ascending order in the CI matrix (as are the PHP and TYPO3 versions).
This is the same as #617 (which rearranged the CI matrix entries
for the Composer-script-based CI jobs), but for the CI jobs using
the predefined GitHub Actions (this time for the unit tests).
Part of #578
With PHP 7.4 as the minimum supported PHP version, we can now
upgrade.
Also drop a now-obsolete conflict for a package version that
now is not possible anymore.
This way, the Composer dependencies are consistently in
ascending order in the CI matrix (as are the PHP and TYPO3 versions).
This is the same as #617 (which rearranged the CI matrix entries
for the Composer-script-based CI jobs), but for the CI jobs using
the predefined GitHub Actions.
Part of #578
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