mirror of https://github.com/FriendsOfTYPO3/tea.git synced 2024-11-15 18:56:13 +01:00
Commit graph

3 commits

Author SHA1 Message Date
Stefan Bürk
d0282d488a [TASK] Migrate GitHub Actions to use Build/Scripts/runTests.sh
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.
2022-10-16 05:08:57 +02:00
Stefan Bürk
71bc7e137d [TASK] Introduce Build/Scripts/runTests.sh adoption
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
2022-10-16 03:49:32 +02:00
Stefan Bürk
41b44c28a4 [TASK] Avoid using testing-framework boilerplate files
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
2022-10-16 01:55:38 +02:00