diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml index 94e7ebdf1..d6d077a75 100644 --- a/.github/workflows/default.yml +++ b/.github/workflows/default.yml @@ -37,7 +37,7 @@ jobs : with : php-version : '8.0' extensions : intl, maxminddb - tools : composer:v2 + tools : composer:v2, cs2pr - name : Cache PHP dependencies uses : actions/cache@v2 @@ -52,10 +52,21 @@ jobs : rm -rf web/static/assets.json chmod a+x bin/console - - name : Run early test suite + - name : Run Composer install run : | composer install --no-interaction --ignore-platform-reqs - composer run ci-test-early + + - name : Run PHP Linter + run : | + vendor/bin/parallel-lint . --exclude vendor --checkstyle | cs2pr + + - name : Run PHPStan + run : | + vendor/bin/phpstan analyze --error-format=checkstyle | cs2pr + + - name : Run PHP Code Sniffer + run : | + vendor/bin/phpcs --report=checkstyle | cs2pr - name : Clear existing locales. if : github.event_name == 'push' || github.event_name == 'schedule' @@ -113,7 +124,7 @@ jobs : run : | chmod 777 tests/_output/ chmod 777 tests/_support/_generated - docker-compose run --rm --user="azuracast" web composer ci-test-late + docker-compose run --rm --user="azuracast" web composer codeception-no-coverage - name : Stop all running containers. run : | diff --git a/composer.json b/composer.json index 0e28cd430..56de33032 100644 --- a/composer.json +++ b/composer.json @@ -48,7 +48,6 @@ "monolog/monolog": "^2", "myclabs/deep-copy": "^1.10", "nesbot/carbon": "^2.36", - "overtrue/phplint": "^2.0", "pagerfanta/doctrine-collections-adapter": "^3", "pagerfanta/doctrine-orm-adapter": "^3", "php-di/php-di": "^6.0", @@ -95,6 +94,8 @@ "codeception/module-rest": "^1.0", "filp/whoops": "^2", "mockery/mockery": "^1.0", + "php-parallel-lint/php-console-highlighter": "^0.5.0", + "php-parallel-lint/php-parallel-lint": "^1.3", "phpstan/phpstan": "^0.12", "phpstan/phpstan-doctrine": "^0.12", "phpunit/php-timer": "^5.0", @@ -124,21 +125,13 @@ "@phpcbf", "@dev-test" ], - "ci-test-early": [ - "@phplint", - "@phpstan", - "@phpcs" - ], - "ci-test-late": [ - "@codeception-no-coverage" - ], "dev-test": [ "@phplint", "@phpstan", "@phpcs", "@codeception-no-coverage" ], - "phplint": "phplint", + "phplint": "parallel-lint . --exclude vendor", "phpstan": "phpstan analyze", "phpcs": "phpcs", "phpcbf": "phpcbf", diff --git a/composer.lock b/composer.lock index b2d033870..003fc1f64 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e86fbe854cbc0f8ea151f1c5c9fee013", + "content-hash": "44513940d9a78bde92dbe68aa71ae68b", "packages": [ { "name": "aws/aws-sdk-php", @@ -4125,46 +4125,6 @@ ], "time": "2020-11-13T09:40:50+00:00" }, - { - "name": "n98/junit-xml", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/cmuench/junit-xml.git", - "reference": "7df0dbaf413fcaa1a63ffbcef18654e7a4cceb46" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cmuench/junit-xml/zipball/7df0dbaf413fcaa1a63ffbcef18654e7a4cceb46", - "reference": "7df0dbaf413fcaa1a63ffbcef18654e7a4cceb46", - "shasum": "" - }, - "require-dev": { - "phpunit/phpunit": "3.7.*" - }, - "type": "library", - "autoload": { - "psr-0": { - "N98\\JUnitXml": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christian Münch", - "email": "c.muench@netz98.de" - } - ], - "description": "JUnit XML Document generation library", - "support": { - "issues": "https://github.com/cmuench/junit-xml/issues", - "source": "https://github.com/cmuench/junit-xml/tree/master" - }, - "time": "2013-11-23T13:11:26+00:00" - }, { "name": "nesbot/carbon", "version": "2.46.0", @@ -4373,76 +4333,6 @@ }, "time": "2021-04-09T13:42:10+00:00" }, - { - "name": "overtrue/phplint", - "version": "2.3.5", - "source": { - "type": "git", - "url": "https://github.com/overtrue/phplint.git", - "reference": "fa2a2ba64f997f268171a5b12d141b2fe94e5ad0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/overtrue/phplint/zipball/fa2a2ba64f997f268171a5b12d141b2fe94e5ad0", - "reference": "fa2a2ba64f997f268171a5b12d141b2fe94e5ad0", - "shasum": "" - }, - "require": { - "ext-json": "*", - "n98/junit-xml": "1.0.0", - "php": ">=5.5.9", - "symfony/console": "^3.2|^4.0|^5.0", - "symfony/finder": "^3.0|^4.0|^5.0", - "symfony/process": "^3.3|^4.0|^5.0", - "symfony/yaml": "^3.0|^4.0|^5.0" - }, - "require-dev": { - "brainmaestro/composer-git-hooks": "^2.7", - "friendsofphp/php-cs-fixer": "^2.16", - "jakub-onderka/php-console-highlighter": "^0.3.2 || ^0.4" - }, - "bin": [ - "bin/phplint" - ], - "type": "library", - "extra": { - "hooks": { - "pre-commit": [ - "composer fix-style" - ], - "pre-push": [ - "composer check-style" - ] - } - }, - "autoload": { - "psr-4": { - "Overtrue\\PHPLint\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "overtrue", - "email": "anzhengchao@gmail.com" - } - ], - "description": "`phplint` is a tool that can speed up linting of php files by running several lint processes at once.", - "keywords": [ - "check", - "lint", - "phplint", - "syntax" - ], - "support": { - "issues": "https://github.com/overtrue/phplint/issues", - "source": "https://github.com/overtrue/phplint/tree/2.3.5" - }, - "time": "2020-12-11T17:27:13+00:00" - }, { "name": "pagerfanta/core", "version": "v3.0.0", @@ -10157,6 +10047,165 @@ }, "time": "2021-02-23T14:00:09+00:00" }, + { + "name": "php-parallel-lint/php-console-color", + "version": "v0.3", + "source": { + "type": "git", + "url": "https://github.com/php-parallel-lint/PHP-Console-Color.git", + "reference": "b6af326b2088f1ad3b264696c9fd590ec395b49e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-parallel-lint/PHP-Console-Color/zipball/b6af326b2088f1ad3b264696c9fd590ec395b49e", + "reference": "b6af326b2088f1ad3b264696c9fd590ec395b49e", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "replace": { + "jakub-onderka/php-console-color": "*" + }, + "require-dev": { + "php-parallel-lint/php-code-style": "1.0", + "php-parallel-lint/php-parallel-lint": "1.0", + "php-parallel-lint/php-var-dump-check": "0.*", + "phpunit/phpunit": "~4.3", + "squizlabs/php_codesniffer": "1.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "JakubOnderka\\PhpConsoleColor\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Jakub Onderka", + "email": "jakub.onderka@gmail.com" + } + ], + "support": { + "issues": "https://github.com/php-parallel-lint/PHP-Console-Color/issues", + "source": "https://github.com/php-parallel-lint/PHP-Console-Color/tree/master" + }, + "time": "2020-05-14T05:47:14+00:00" + }, + { + "name": "php-parallel-lint/php-console-highlighter", + "version": "v0.5", + "source": { + "type": "git", + "url": "https://github.com/php-parallel-lint/PHP-Console-Highlighter.git", + "reference": "21bf002f077b177f056d8cb455c5ed573adfdbb8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-parallel-lint/PHP-Console-Highlighter/zipball/21bf002f077b177f056d8cb455c5ed573adfdbb8", + "reference": "21bf002f077b177f056d8cb455c5ed573adfdbb8", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.4.0", + "php-parallel-lint/php-console-color": "~0.2" + }, + "replace": { + "jakub-onderka/php-console-highlighter": "*" + }, + "require-dev": { + "php-parallel-lint/php-code-style": "~1.0", + "php-parallel-lint/php-parallel-lint": "~1.0", + "php-parallel-lint/php-var-dump-check": "~0.1", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "JakubOnderka\\PhpConsoleHighlighter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jakub Onderka", + "email": "acci@acci.cz", + "homepage": "http://www.acci.cz/" + } + ], + "description": "Highlight PHP code in terminal", + "support": { + "issues": "https://github.com/php-parallel-lint/PHP-Console-Highlighter/issues", + "source": "https://github.com/php-parallel-lint/PHP-Console-Highlighter/tree/master" + }, + "time": "2020-05-13T07:37:49+00:00" + }, + { + "name": "php-parallel-lint/php-parallel-lint", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git", + "reference": "772a954e5f119f6f5871d015b23eabed8cbdadfb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/772a954e5f119f6f5871d015b23eabed8cbdadfb", + "reference": "772a954e5f119f6f5871d015b23eabed8cbdadfb", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=5.3.0" + }, + "replace": { + "grogy/php-parallel-lint": "*", + "jakub-onderka/php-parallel-lint": "*" + }, + "require-dev": { + "nette/tester": "^1.3 || ^2.0", + "php-parallel-lint/php-console-highlighter": "~0.3", + "squizlabs/php_codesniffer": "^3.5" + }, + "suggest": { + "php-parallel-lint/php-console-highlighter": "Highlight syntax in code snippet" + }, + "bin": [ + "parallel-lint" + ], + "type": "library", + "autoload": { + "classmap": [ + "./" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Jakub Onderka", + "email": "ahoj@jakubonderka.cz" + } + ], + "description": "This tool check syntax of PHP files about 20x faster than serial check.", + "homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint", + "support": { + "issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues", + "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.3.0" + }, + "time": "2021-04-07T14:42:48+00:00" + }, { "name": "phpdocumentor/reflection-common", "version": "2.2.0", diff --git a/phpstan.neon b/phpstan.neon index a84b63932..cc591b292 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -5,7 +5,7 @@ parameters: - src bootstrapFiles: - - %rootDir%/../../../util/phpstan.php + - ./util/phpstan.php universalObjectCratesClasses: - App\Session\NamespaceInterface