-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[TASK] Add github actions and reconfigure paths for linters
- Loading branch information
Showing
5 changed files
with
1,312 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
name: tests core 11 | ||
|
||
on: | ||
pull_request: | ||
workflow_dispatch: | ||
|
||
jobs: | ||
code-quality: | ||
name: "code quality with core v11" | ||
runs-on: ubuntu-22.04 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
php-version: [ '7.4'] | ||
steps: | ||
- name: "Checkout" | ||
uses: actions/checkout@v4 | ||
|
||
- name: "Prepare dependencies for TYPO3 v11" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s composerUpdate" | ||
|
||
# Disabled, as latest installable version of TypoScript linter does not support the TYPO3 backend layout | ||
# override syntax in PageTSConfig files. | ||
# @see https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/12.0/Feature-96812-OverrideBackendTemplatesWithTSconfig.html | ||
# - name: "Run TypoScript lint" | ||
# run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s lintTypoScript" | ||
|
||
- name: "Run PHP lint" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s lintPhp" | ||
|
||
- name: "Validate CGL" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s cgl" | ||
|
||
- name: "Ensure tests methods do not start with \"test\"" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s checkTestMethodsPrefix" | ||
|
||
- name: "Ensure UTF-8 files do not contain BOM" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s checkBom" | ||
|
||
- name: "Test .rst files for integrity" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s checkRst" | ||
|
||
- name: "Find duplicate exception codes" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s checkExceptionCodes" | ||
|
||
- name: "Run PHPStan" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s phpstan" | ||
|
||
typoscript: | ||
name: "Linting TypoScript and TSConfig files" | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- name: "Checkout" | ||
uses: actions/checkout@v4 | ||
|
||
- name: "Prepare dependencies for TYPO3 v11" | ||
run: "Build/Scripts/runTests.sh -t 11 -p 8.1 -s composerUpdate" | ||
|
||
|
||
testsuite: | ||
name: all tests with core v11 | ||
runs-on: ubuntu-22.04 | ||
needs: | ||
- code-quality | ||
- typoscript | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
php-version: [ '7.4', '8.0', '8.1', '8.2', '8.3' ] | ||
steps: | ||
- name: "Checkout" | ||
uses: actions/checkout@v4 | ||
|
||
- name: "Prepare dependencies for TYPO3 v11" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s composerUpdate" | ||
|
||
- name: "Unit" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s unit" | ||
|
||
- name: "Functional SQLite" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s functional -d sqlite" | ||
|
||
- name: "Functional MariaDB 10.5 mysqli" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s functional -d mariadb -a mysqli" | ||
|
||
- name: "Functional MariaDB 10.5 pdo_mysql" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s functional -d mariadb -a pdo_mysql" | ||
|
||
- name: "Functional MySQL 8.0 mysqli" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s functional -d mariadb -a mysqli" | ||
|
||
- name: "Functional MySQL 8.0 pdo_mysql" | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s functional -d mariadb -a pdo_mysql" | ||
|
||
- name: "Functional PostgresSQL 10" | ||
# v11 postgres functional disabled with PHP 8.2 since https://github.com/doctrine/dbal/commit/73eec6d882b99e1e2d2d937accca89c1bd91b2d7 | ||
# is not fixed in doctrine core v11 doctrine 2.13.9 | ||
if: ${{ matrix.php <= '8.1' }} | ||
run: "Build/Scripts/runTests.sh -t 11 -p ${{ matrix.php-version }} -s functional -d postgres" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
/* | ||
* This file is part of the TYPO3 CMS project. | ||
* | ||
* It is free software; you can redistribute it and/or modify it under | ||
* the terms of the GNU General Public License, either version 2 | ||
* of the License, or any later version. | ||
* | ||
* For the full copyright and license information, please read the | ||
* LICENSE.txt file that was distributed with this source code. | ||
* | ||
* The TYPO3 project - inspiring people to share! | ||
*/ | ||
|
||
/** | ||
* This file represents the configuration for Code Sniffing PER-related | ||
* automatic checks of coding guidelines. | ||
* | ||
* Run it using runTests.sh, see 'runTests.sh -h' for more options. | ||
* | ||
* Fix entire core: | ||
* > Build/Scripts/runTests.sh -s cgl | ||
* | ||
* Fix your current patch: | ||
* > Build/Scripts/runTests.sh -s cglGit | ||
*/ | ||
if (PHP_SAPI !== 'cli') { | ||
die('This script supports command line usage only. Please check your command.'); | ||
} | ||
|
||
// Return a Code Sniffing configuration using | ||
// all sniffers needed for PER | ||
// and additionally: | ||
// - Remove leading slashes in use clauses. | ||
// - PHP single-line arrays should not have trailing comma. | ||
// - Single-line whitespace before closing semicolon are prohibited. | ||
// - Remove unused use statements in the PHP source code | ||
// - Ensure Concatenation to have at least one whitespace around | ||
// - Remove trailing whitespace at the end of blank lines. | ||
return (new \PhpCsFixer\Config()) | ||
->setFinder( | ||
(new PhpCsFixer\Finder()) | ||
->ignoreVCSIgnored(true) | ||
->in(realpath(__DIR__ . '/../../')) | ||
) | ||
->setRiskyAllowed(true) | ||
->setRules([ | ||
'@DoctrineAnnotation' => true, | ||
// @todo: Switch to @PER-CS2.0 once php-cs-fixer's todo list is done: https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7247 | ||
'@PER-CS1.0' => true, | ||
'array_indentation' => true, | ||
'array_syntax' => ['syntax' => 'short'], | ||
'cast_spaces' => ['space' => 'none'], | ||
// @todo: Can be dropped once we enable @PER-CS2.0 | ||
'concat_space' => ['spacing' => 'one'], | ||
'declare_equal_normalize' => ['space' => 'none'], | ||
'declare_parentheses' => true, | ||
'dir_constant' => true, | ||
// @todo: Can be dropped once we enable @PER-CS2.0 | ||
'function_declaration' => [ | ||
'closure_fn_spacing' => 'none', | ||
], | ||
'function_to_constant' => ['functions' => ['get_called_class', 'get_class', 'get_class_this', 'php_sapi_name', 'phpversion', 'pi']], | ||
'type_declaration_spaces' => true, | ||
'global_namespace_import' => ['import_classes' => false, 'import_constants' => false, 'import_functions' => false], | ||
'list_syntax' => ['syntax' => 'short'], | ||
// @todo: Can be dropped once we enable @PER-CS2.0 | ||
'method_argument_space' => true, | ||
'modernize_strpos' => true, | ||
'modernize_types_casting' => true, | ||
'native_function_casing' => true, | ||
'no_alias_functions' => true, | ||
'no_blank_lines_after_phpdoc' => true, | ||
'no_empty_phpdoc' => true, | ||
'no_empty_statement' => true, | ||
'no_extra_blank_lines' => true, | ||
'no_leading_namespace_whitespace' => true, | ||
'no_null_property_initialization' => true, | ||
'no_short_bool_cast' => true, | ||
'no_singleline_whitespace_before_semicolons' => true, | ||
'no_superfluous_elseif' => true, | ||
'no_trailing_comma_in_singleline' => true, | ||
'no_unneeded_control_parentheses' => true, | ||
'no_unused_imports' => true, | ||
'no_useless_else' => true, | ||
'no_useless_nullsafe_operator' => true, | ||
'ordered_imports' => ['imports_order' => ['class', 'function', 'const'], 'sort_algorithm' => 'alpha'], | ||
'php_unit_construct' => ['assertions' => ['assertEquals', 'assertSame', 'assertNotEquals', 'assertNotSame']], | ||
'php_unit_mock_short_will_return' => true, | ||
'php_unit_test_case_static_method_calls' => ['call_type' => 'self'], | ||
'phpdoc_no_access' => true, | ||
'phpdoc_no_empty_return' => true, | ||
'phpdoc_no_package' => true, | ||
'phpdoc_scalar' => true, | ||
'phpdoc_trim' => true, | ||
'phpdoc_types' => true, | ||
'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'], | ||
'return_type_declaration' => ['space_before' => 'none'], | ||
'single_quote' => true, | ||
'single_space_around_construct' => true, | ||
'single_line_comment_style' => ['comment_types' => ['hash']], | ||
// @todo: Can be dropped once we enable @PER-CS2.0 | ||
'single_line_empty_body' => true, | ||
'trailing_comma_in_multiline' => ['elements' => ['arrays']], | ||
'whitespace_after_comma_in_array' => ['ensure_single_space' => true], | ||
'yoda_style' => ['equal' => false, 'identical' => false, 'less_and_greater' => false], | ||
]); |
Oops, something went wrong.