Scope: use scope->getConstant
instead
#19091
Workflow file for this run
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
# https://help.github.com/en/categories/automating-your-workflow-with-github-actions | |
name: "E2E Tests" | |
on: | |
pull_request: | |
paths-ignore: | |
- 'compiler/**' | |
- 'apigen/**' | |
- 'changelog-generator/**' | |
- 'issue-bot/**' | |
push: | |
branches: | |
- "2.0.x" | |
paths-ignore: | |
- 'compiler/**' | |
- 'apigen/**' | |
- 'changelog-generator/**' | |
- 'issue-bot/**' | |
concurrency: | |
group: e2e-${{ github.head_ref || github.run_id }} # will be canceled on subsequent pushes in pull requests but not branches | |
cancel-in-progress: true | |
jobs: | |
result-cache-e2e-tests: | |
name: "Result cache E2E tests" | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- script: | | |
cd e2e/result-cache-1 | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
patch -b src/Bar.php < patch-1.patch | |
cat baseline-1.neon > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
mv src/Bar.php.orig src/Bar.php | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
- script: | | |
cd e2e/result-cache-2 | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
patch -b src/Bar.php < patch-1.patch | |
cat baseline-1.neon > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
mv src/Bar.php.orig src/Bar.php | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
- script: | | |
cd e2e/result-cache-3 | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
patch -b src/Baz.php < patch-1.patch | |
cat baseline-1.neon > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
mv src/Baz.php.orig src/Baz.php | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
- script: | | |
cd e2e/result-cache-4 | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
patch -b src/Bar.php < patch-1.patch | |
cat baseline-1.neon > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
mv src/Bar.php.orig src/Bar.php | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
- script: | | |
cd e2e/result-cache-5 | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
patch -b src/Baz.php < patch-1.patch | |
cat baseline-1.neon > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
mv src/Baz.php.orig src/Baz.php | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
- script: | | |
cd e2e/result-cache-6 | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
patch -b src/Baz.php < patch-1.patch | |
cat baseline-1.neon > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
mv src/Baz.php.orig src/Baz.php | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
- script: | | |
cd e2e/result-cache-7 | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
patch -b src/Bar.php < patch-1.patch | |
cat baseline-1.neon > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
mv src/Bar.php.orig src/Bar.php | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
- script: | | |
cd e2e/bug10449 | |
../../bin/phpstan analyze | |
git apply patch.diff | |
rm phpstan-baseline.neon | |
mv after-phpstan-baseline.neon phpstan-baseline.neon | |
../../bin/phpstan analyze -vvv | |
- script: | | |
cd e2e/bug10449b | |
../../bin/phpstan analyze | |
git apply patch.diff | |
rm phpstan-baseline.neon | |
mv after-phpstan-baseline.neon phpstan-baseline.neon | |
../../bin/phpstan analyze -vvv | |
- script: | | |
cd e2e/bug-9622 | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
patch -b src/Foo.php < patch-1.patch | |
cat baseline-1.neon > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
mv src/Foo.php.orig src/Foo.php | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
- script: | | |
cd e2e/bug-9622-trait | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
patch -b src/Foo.php < patch-1.patch | |
cat baseline-1.neon > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
mv src/Foo.php.orig src/Foo.php | |
echo -n > phpstan-baseline.neon | |
../../bin/phpstan -vvv | |
- script: | | |
cd e2e/env-parameter | |
export PHPSTAN_RESULT_CACHE_PATH=/some/path | |
ACTUAL=$(../../bin/phpstan dump-parameters -c phpstan.neon --json -l 9 | jq --raw-output '.resultCachePath') | |
[[ "$ACTUAL" == "/some/path" ]]; | |
- script: | | |
cd e2e/result-cache-8 | |
composer install | |
../../bin/phpstan | |
echo -en '\n' >> build/CustomRule.php | |
OUTPUT=$(../../bin/phpstan analyze 2>&1 || true) | |
echo "$OUTPUT" | |
../bashunit -a contains 'Result cache might not behave correctly' "$OUTPUT" | |
../bashunit -a contains 'ResultCache8E2E\CustomRule' "$OUTPUT" | |
- script: | | |
cd e2e/env-int-key | |
env 1=1 ../../bin/phpstan analyse test.php | |
- script: | | |
cd e2e/trait-caching | |
../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/ | |
../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/ | |
- script: | | |
cd e2e/trait-caching | |
../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/ | |
patch -b data/TraitOne.php < TraitOne.patch | |
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/") | |
echo "$OUTPUT" | |
../bashunit -a line_count 2 "$OUTPUT" | |
../bashunit -a matches "Note: Using configuration file .+phpstan.neon." "$OUTPUT" | |
../bashunit -a contains 'Method TraitsCachingIssue\TestClassUsingTrait::doBar() should return stdClass but returns Exception.' "$OUTPUT" | |
- script: | | |
cd e2e/trait-caching | |
../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/ | |
patch -b data/TraitTwo.php < TraitTwo.patch | |
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/") | |
echo "$OUTPUT" | |
../bashunit -a line_count 2 "$OUTPUT" | |
../bashunit -a matches "Note: Using configuration file .+phpstan.neon." "$OUTPUT" | |
../bashunit -a contains 'Method class@anonymous/TestClassUsingTrait.php:20::doBar() should return stdClass but returns Exception.' "$OUTPUT" | |
- script: | | |
cd e2e/trait-caching | |
../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/ | |
patch -b data/TraitOne.php < TraitOne.patch | |
patch -b data/TraitTwo.php < TraitTwo.patch | |
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyze --no-progress --level 8 --error-format raw data/") | |
echo "$OUTPUT" | |
../bashunit -a line_count 3 "$OUTPUT" | |
../bashunit -a matches "Note: Using configuration file .+phpstan.neon." "$OUTPUT" | |
../bashunit -a contains 'Method TraitsCachingIssue\TestClassUsingTrait::doBar() should return stdClass but returns Exception.' "$OUTPUT" | |
../bashunit -a contains 'Method class@anonymous/TestClassUsingTrait.php:20::doBar() should return stdClass but returns Exception.' "$OUTPUT" | |
- script: | | |
cd e2e/bad-exclude-paths | |
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyse -c ignore.neon") | |
echo "$OUTPUT" | |
../bashunit -a contains 'Invalid entry in ignoreErrors' "$OUTPUT" | |
../bashunit -a contains 'tests is neither a directory, nor a file path, nor a fnmatch pattern.' "$OUTPUT" | |
- script: | | |
cd e2e/bad-exclude-paths | |
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyse -c phpneon.php") | |
echo "$OUTPUT" | |
../bashunit -a contains 'Invalid entry in ignoreErrors' "$OUTPUT" | |
../bashunit -a contains 'src/test.php is neither a directory, nor a file path, nor a fnmatch pattern.' "$OUTPUT" | |
- script: | | |
cd e2e/bad-exclude-paths | |
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyse -c excludePaths.neon") | |
echo "$OUTPUT" | |
../bashunit -a contains 'Invalid entry in excludePaths' "$OUTPUT" | |
../bashunit -a contains 'tests is neither a directory, nor a file path, nor a fnmatch pattern.' "$OUTPUT" | |
- script: | | |
cd e2e/bad-exclude-paths | |
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan analyse -c phpneon2.php") | |
echo "$OUTPUT" | |
../bashunit -a contains 'Invalid entry in excludePaths' "$OUTPUT" | |
../bashunit -a contains 'src/test.php is neither a directory, nor a file path, nor a fnmatch pattern.' "$OUTPUT" | |
- script: | | |
cd e2e/bad-exclude-paths | |
OUTPUT=$(../../bin/phpstan analyse -c ignoreNonexistentExcludePath.neon) | |
echo "$OUTPUT" | |
- script: | | |
cd e2e/bad-exclude-paths | |
cp -r tmp-node-modules node_modules | |
OUTPUT=$(../../bin/phpstan analyse -c ignoreNonexistentExcludePath.neon) | |
echo "$OUTPUT" | |
- script: | | |
cd e2e/bad-exclude-paths | |
OUTPUT=$(../../bin/phpstan analyse -c ignoreReportUnmatchedFalse.neon) | |
echo "$OUTPUT" | |
- script: | | |
cd e2e/bug-11826 | |
composer install | |
OUTPUT=$(../bashunit -a exit_code "1" "../../bin/phpstan") | |
echo "$OUTPUT" | |
../bashunit -a contains 'Child process error (exit code 255): PHP Fatal error' "$OUTPUT" | |
../bashunit -a contains 'Result is incomplete because of severe errors.' "$OUTPUT" | |
- script: | | |
cd e2e/bug-11857 | |
composer install | |
../../bin/phpstan | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
coverage: "none" | |
php-version: "8.1" | |
extensions: mbstring | |
ini-values: memory_limit=256M | |
- name: "Install dependencies" | |
run: "composer install --no-interaction --no-progress" | |
- name: "Patch PHPStan" | |
run: "patch src/Analyser/Error.php < e2e/PHPStanErrorPatch.patch" | |
- name: "Install bashunit" | |
run: "curl -s https://bashunit.typeddevs.com/install.sh | bash -s e2e/ 0.18.0" | |
- name: "Test" | |
run: "${{ matrix.script }}" | |
e2e-tests: | |
name: "E2E tests" | |
runs-on: "ubuntu-latest" | |
timeout-minutes: 60 | |
strategy: | |
matrix: | |
include: | |
- script: "bin/phpstan analyse -l 8 -a tests/e2e/data/timecop.php -c tests/e2e/data/empty.neon tests/e2e/data/timecop.php" | |
tools: "pecl" | |
extensions: "timecop-beta" | |
- script: "bin/phpstan analyse -l 8 -a tests/e2e/data/soap.php -c tests/e2e/data/empty.neon tests/e2e/data/soap.php" | |
extensions: "soap" | |
- script: "bin/phpstan analyse -l 8 -a tests/e2e/data/soap.php -c tests/e2e/data/empty.neon tests/e2e/data/soap.php" | |
extensions: "" | |
- script: "bin/phpstan analyse -l 8 tests/e2e/anon-class/Granularity.php" | |
extensions: "" | |
- script: "bin/phpstan analyse -l 8 e2e/phpstan-phpunit-190/test.php -c e2e/phpstan-phpunit-190/test.neon" | |
extensions: "" | |
- script: "bin/phpstan analyse e2e/only-files-not-analysed-trait/src -c e2e/only-files-not-analysed-trait/ignore.neon" | |
extensions: "" | |
- script: "bin/phpstan analyse e2e/only-files-not-analysed-trait/src/Foo.php e2e/only-files-not-analysed-trait/src/BarTrait.php -c e2e/only-files-not-analysed-trait/no-ignore.neon" | |
extensions: "" | |
- script: | | |
cd e2e/baseline-uninit-prop-trait | |
../../bin/phpstan analyse --debug --configuration test-no-baseline.neon --generate-baseline test-baseline.neon | |
../../bin/phpstan analyse --debug --configuration test.neon | |
- script: | | |
cd e2e/baseline-uninit-prop-trait | |
../../bin/phpstan analyse --configuration test-no-baseline.neon --generate-baseline test-baseline.neon | |
../../bin/phpstan analyse --configuration test.neon | |
- script: | | |
cd e2e/discussion-11362 | |
composer install | |
../../bin/phpstan | |
- script: | | |
cd e2e/bug-11819 | |
../../bin/phpstan | |
- script: | | |
cd e2e/composer-and-phpstan-version-config | |
composer install --ignore-platform-reqs | |
../../bin/phpstan analyze test.php --level=0 | |
- script: | | |
cd e2e/composer-max-version | |
composer install | |
../../bin/phpstan analyze test.php --level=0 | |
- script: | | |
cd e2e/composer-min-max-version | |
composer install | |
../../bin/phpstan analyze test.php --level=0 | |
- script: | | |
cd e2e/composer-min-open-end-version | |
composer install | |
../../bin/phpstan analyze test.php --level=0 | |
- script: | | |
cd e2e/composer-min-version-v5 | |
composer install --ignore-platform-reqs | |
../../bin/phpstan analyze test.php --level=0 | |
- script: | | |
cd e2e/composer-min-version-v7 | |
composer install --ignore-platform-reqs | |
../../bin/phpstan analyze test.php --level=0 | |
- script: | | |
cd e2e/composer-min-version | |
composer install | |
../../bin/phpstan analyze test.php --level=0 | |
- script: | | |
cd e2e/composer-no-versions | |
composer install | |
../../bin/phpstan analyze test.php --level=0 | |
- script: | | |
cd e2e/composer-version-config-invalid | |
OUTPUT=$(../bashunit -a exit_code "1" ../../bin/phpstan) | |
echo "$OUTPUT" | |
../bashunit -a contains 'Invalid configuration' "$OUTPUT" | |
../bashunit -a contains 'Invalid PHP version range: phpVersion.max should be greater or equal to phpVersion.min.' "$OUTPUT" | |
- script: | | |
cd e2e/composer-version-config-patch | |
composer install --ignore-platform-reqs | |
../../bin/phpstan analyze test.php --level=0 | |
- script: | | |
cd e2e/composer-version-config | |
composer install | |
../../bin/phpstan analyze test.php --level=0 | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
- name: "Install PHP" | |
uses: "shivammathur/setup-php@v2" | |
with: | |
coverage: "none" | |
php-version: "8.1" | |
tools: ${{ matrix.tools }} | |
extensions: ${{ matrix.extensions }} | |
- name: "Install dependencies" | |
run: "composer install --no-interaction --no-progress" | |
- name: "Install bashunit" | |
run: "curl -s https://bashunit.typeddevs.com/install.sh | bash -s e2e/ 0.18.0" | |
- name: "Test" | |
run: ${{ matrix.script }} |