From ca51ea2b99ea51243e831c90e2a8d07dd2d2f0fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mor=C3=A1vek?= Date: Sat, 11 Apr 2020 19:25:08 +0200 Subject: [PATCH] CI skeleton --- .eslintrc.js | 16 +++++++ .phpcs.xml.dist | 42 +++++++++++++++++++ .travis.yml | 51 +++++++++++++++++++++++ babel.config.js | 12 ++++++ phpstan.neon.dist | 16 +++++++ phpstan.tests.neon.dist | 26 ++++++++++++ tests/.gitignore | 3 ++ tests/TestCase.php | 27 ++++++++++++ tests/bootstrap.php | 28 +++++++++++++ tests/coveralls.yml | 4 ++ tests/php.ini | 0 tests/phpstan/disallowed-calls-rules.neon | 11 +++++ 12 files changed, 236 insertions(+) create mode 100644 .eslintrc.js create mode 100644 .phpcs.xml.dist create mode 100644 .travis.yml create mode 100644 babel.config.js create mode 100644 phpstan.neon.dist create mode 100644 phpstan.tests.neon.dist create mode 100644 tests/.gitignore create mode 100644 tests/TestCase.php create mode 100644 tests/bootstrap.php create mode 100644 tests/coveralls.yml create mode 100644 tests/php.ini create mode 100644 tests/phpstan/disallowed-calls-rules.neon diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..01c4d51 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,16 @@ +module.exports = { + 'env': { + 'browser': true, + 'es6': true, + }, + 'parserOptions': { + 'ecmaVersion': 2018, + 'sourceType': 'module', + }, + 'plugins': [ + 'import', + ], + 'extends': [ + '@nepada', + ], +}; diff --git a/.phpcs.xml.dist b/.phpcs.xml.dist new file mode 100644 index 0000000..0a78d69 --- /dev/null +++ b/.phpcs.xml.dist @@ -0,0 +1,42 @@ + + + + + + + + + src + tests + + + + + + + + + + + + + + + + + + + + + + + + + + + */tests/temp/* + + *.phpt + */bootstrap.php + + diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..c061f7f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,51 @@ +language: php +php: + - 7.4 + +env: + - COMPOSER_ARGS="" + - COMPOSER_ARGS="--prefer-stable" + - COMPOSER_ARGS="--prefer-stable --prefer-lowest" + +jobs: + include: + - name: JS test + Code Standard Checker + language: node_js + node_js: lts/* + install: + - travis_retry npm install + script: + - npm run lint + - npm run build + - stage: Code Standard Checker + php: 7.4 + script: + - vendor/bin/phpcs + - stage: Code Coverage + php: 7.4 + script: + - vendor/bin/tester -p phpdbg tests -s --coverage ./coverage.xml --coverage-src ./src + after_script: + - travis_retry wget https://github.com/php-coveralls/php-coveralls/releases/download/v2.0.0/php-coveralls.phar + - php php-coveralls.phar --verbose --config tests/coveralls.yml + allow_failures: + - stage: Code Coverage + +install: + - travis_retry composer update --no-interaction --prefer-dist $COMPOSER_ARGS + +script: + - vendor/bin/parallel-lint -e php,phpt --exclude tests/temp src tests + - vendor/bin/tester -s -p php -c tests/php.ini tests + - vendor/bin/phpstan.phar analyse + - vendor/bin/phpstan.phar analyse -c phpstan.tests.neon.dist + +after_failure: + - for i in $(find tests -name \*.actual); do echo "--- $i"; cat $i; echo; echo; done + +sudo: false + +cache: + directories: + - $HOME/.composer/cache + - $HOME/.npm diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..23821a0 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,12 @@ +module.exports = { + 'presets': [ + [ + '@babel/preset-env', + { + 'targets': { + 'node': 'current', + }, + }, + ], + ], +}; diff --git a/phpstan.neon.dist b/phpstan.neon.dist new file mode 100644 index 0000000..3d5be5c --- /dev/null +++ b/phpstan.neon.dist @@ -0,0 +1,16 @@ +includes: + - vendor/phpstan/phpstan-strict-rules/rules.neon + - vendor/pepakriz/phpstan-exception-rules/extension.neon + - vendor/phpstan/phpstan-nette/extension.neon + - vendor/phpstan/phpstan-nette/rules.neon + - tests/phpstan/disallowed-calls-rules.neon + +parameters: + level: max + paths: + - src + + exceptionRules: + uncheckedExceptions: + - LogicException + - Nette\InvalidStateException diff --git a/phpstan.tests.neon.dist b/phpstan.tests.neon.dist new file mode 100644 index 0000000..4458739 --- /dev/null +++ b/phpstan.tests.neon.dist @@ -0,0 +1,26 @@ +includes: + - vendor/phpstan/phpstan-strict-rules/rules.neon + - vendor/phpstan/phpstan-nette/extension.neon + - vendor/phpstan/phpstan-nette/rules.neon + - vendor/nepada/phpstan-nette-tester/extension.neon + - vendor/phpstan/phpstan-mockery/extension.neon + - tests/phpstan/disallowed-calls-rules.neon + +parameters: + level: max + paths: + - tests + + fileExtensions: + - php + - phpt + + autoload_directories: + - tests + + excludes_analyse: + - tests/bootstrap.php + - tests/temp/* + + ignoreErrors: +# - '~Call to static method Tester\\Assert::(type|count|same|notSame)\(\) with .* and .* will always evaluate to true\.~' diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 0000000..93b96ae --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,3 @@ +/temp +/*.log +output/ diff --git a/tests/TestCase.php b/tests/TestCase.php new file mode 100644 index 0000000..92e4d45 --- /dev/null +++ b/tests/TestCase.php @@ -0,0 +1,27 @@ +