mirror of
https://github.com/FriendsOfTYPO3/tea.git
synced 2024-12-22 18:46:11 +01:00
Mirror of TYPO3 Extension tea, managed by the Best Practice Team
https://typo3.org/community/teams/best-practices
00ba733b0e
TYPO3 Core and related repositories like the `typo3/testing-framework` or `typo3/styleguide` uses a bash script arround docker to execute all scripts over different operating systems in a controlled and ensured manner. This helps to reproduce locally failing jobs from a CI like GitHub actions or GitLab. TYPO3 core dropped recently the requirement for `docker-compose`, reducing it to `docker` and preparing for dual usage with docker and podman in the future. This change integrates the current state as extension wrapper, aligning contained suits with existing tools. Additionally, a TYPO3 core version switch is integrated. The added script is excluded from git archive building and during releasing. A list of possible options can be display with: ```shell Build/Scripts/runTests.sh -h ``` Overview of integrated features: * `-p` to select the PHP version (7.4 - 8.3) * `-s` to select the suite to execute * `-t` to select the TYPO3 core version, mainly needed for the `composer` suits executions * `-e` to provide additionally flags for phpunit executions, e.g. for unit and functional tests * `-x` to enable xdebug trigger - this helps with debugging during unit or functional test * `-d` to select the database backend to use, needed for functional test execution to start the correct database * `-a` to select the used php driver for the `-d` database backend, if multiple options are possible * `-i` to specify the mariadb version * `-j` to specify the mysql version * `-k` to specify the postgres version Available suits (`-s`): - cgl: Checks the code style with the PHP Coding Standards Fixer (PHP-CS-Fixer). - cglFix: Fixes the code style with PHP-CS-Fixer." - clean: clean up build, cache and testing related files and folders - cleanBuild: clean up build related files and folders - cleanCache: clean up cache related files and folders - cleanRenderedDocumentation: clean up rendered documentation files and folders (Documentation-GENERATED-temp) - cleanTests: clean up test related files and folders - composer: "composer" with all remaining arguments dispatched. - composerInstallMax: "composer update", with no platform.php config. - composerInstallMin: "composer update --prefer-lowest", with platform.php set to PHP version x.x.0. - docsGenerate: Renders the extension ReST documentation. - functional: PHP functional tests - lintTypoScript: TypoScript linting - lintPhp: PHP linting - lintJson: JSON linting - lintYaml: YAML linting - phpstan: phpstan tests - phpstanGenerateBaseline: regenerate phpstan baseline, handy after phpstan updates - unit (default): PHP unit tests - unitRandom: PHP unit tests in random order, add -o <number> to use specific seed Notes: * Not everything is available directly for now in the `runTests.sh` and therefore not enabled in CI. * Coverage related execution needs extended work and are therefore left out for now. * `composer.json` protection for core version changes not included yet like the one or other advanced option. * Intermediate cleanings for changing php versions and core versions not included yet and will follow. * typo3/testing-framework template files **must** be copied to the extension or project and **must not** be used from the vendor folder. Resolves: #899 Releases: main |
||
---|---|---|
.ddev | ||
.github | ||
.gitlab | ||
Build/Scripts | ||
Classes | ||
Configuration | ||
Documentation | ||
Resources | ||
Tests | ||
tools | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc.json | ||
.gitattributes | ||
.gitignore | ||
.php-cs-fixer.php | ||
.phpstorm.meta.php | ||
.prettierrc.js | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
composer.json | ||
ext_emconf.php | ||
ext_localconf.php | ||
ext_tables.sql | ||
LICENSE | ||
package.json | ||
phive.xml | ||
phpcs.xml | ||
phpstan-baseline.neon | ||
phpstan.neon | ||
README.md | ||
stylelint.config.js |
Example TYPO3 extension for code quality checks and automated tests
This TYPO3 extension, based on Extbase and Fluid, is an example of best practices in automated code checks, unit/functional/acceptance testing and continuous integration.
You can also use this extension to manage your collection of delicious teas.
Presentation at the TYPO3 Online Days 2021
At the TYPO3 Online Days 2021, Oliver Klee held a session where her presented our approach for automating the code quality of extensions.