From f5223a3852f01c5394fa1722dc2472c553e3ba43 Mon Sep 17 00:00:00 2001 From: Dave Long <dave@longwaveconsulting.com> Date: Thu, 23 Nov 2023 17:19:11 +0000 Subject: [PATCH] Issue #3403653 by alexpott, longwave: Incorporate improvements to how contrib runs PHPStan to core --- .gitlab-ci.yml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7246f5c3924d..0c6aeaeb16b9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -281,10 +281,28 @@ default: variables: KUBERNETES_CPU_REQUEST: "16" script: - - php vendor/bin/phpstan analyze --configuration=./core/phpstan.neon.dist --error-format=gitlab > phpstan-quality-report.json + # Rely on PHPStan caching to execute analysis multiple times without performance drawback. + # Output a copy in junit. + - php vendor/bin/phpstan analyze --configuration=./core/phpstan.neon.dist --error-format=gitlab > phpstan-quality-report.json || EXIT_CODE=$? + - php vendor/bin/phpstan analyze --configuration=./core/phpstan.neon.dist --no-progress --error-format=junit > phpstan-junit.xml || true + - | + if [ -n "$EXIT_CODE" ]; then + # Output a copy in plain text for human logs. + php vendor/bin/phpstan analyze --configuration=./core/phpstan.neon.dist --no-progress || true + # Generate a new baseline. + echo "Generating an PHPStan baseline file (available as job artifact)." + php vendor/bin/phpstan analyze --configuration=./core/phpstan.neon.dist --no-progress --generate-baseline=./core/phpstan-baseline.neon || true + exit $EXIT_CODE + fi + artifacts: reports: codequality: phpstan-quality-report.json + junit: phpstan-junit.xml + # Only store the baseline if the job fails. + when: on_failure + paths: + - core/phpstan-baseline.neon '🧹 PHP Coding standards (PHPCS)': <<: [ *with-composer, *default-job-settings-lint ] -- GitLab