From 8bc6f68f8df9bca7de9d08e09fcad335a6c62f7a Mon Sep 17 00:00:00 2001 From: Bart Jaskulski <bjaskulski@protonmail.com> Date: Tue, 14 Jan 2025 09:09:07 +0100 Subject: [PATCH] feat: block pipelines on static analysis errors For now, phpstan is running on level 5 to ease the misconfiguration or too much errors on projects, which just set up the static analysis. Signed-off-by: Bart Jaskulski <bjaskulski@protonmail.com> --- includes/tests/static-analysis.yml | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/includes/tests/static-analysis.yml b/includes/tests/static-analysis.yml index 84ddc74..c1204e9 100644 --- a/includes/tests/static-analysis.yml +++ b/includes/tests/static-analysis.yml @@ -1,27 +1,24 @@ .static-analysis: - image: gitlab.wpdesk.dev:5050/wpdesk/docker-tests/php-box:8.3.2 + image: gitlab.wpdesk.dev:5050/wpdesk/docker-tests/php-box:8.4.1 needs: - prepare prefixed vendor stage: tests -# Run phpstan in strict mode (failing pipeline) only if we have baseline, otherwise allow to fail with a warning, suggesting to create one. This behavior will change at the end of the year, when any PHPStan failure will be considered fatal phpstan: extends: .static-analysis script: - | if [ -f "vendor/bin/phpstan" ]; then - vendor/bin/phpstan analyse --error-format=gitlab --memory-limit=2G > phpstan-codequality.json || true - vendor/bin/phpstan analyse --error-format=junit --memory-limit=2G > phpstan-junit.xml + vendor/bin/phpstan analyse --level 5 --error-format=gitlab --memory-limit=2G > phpstan-codequality.json || true + vendor/bin/phpstan analyse --level 5 --error-format=junit --memory-limit=2G > phpstan-junit.xml elif [ -f "vendor/wpdesk/wp-wpdesk-composer/director/vendor/bin/phpstan" ]; then # PHPStan installed by director - vendor/wpdesk/wp-wpdesk-composer/director/vendor/bin/phpstan analyse --error-format=gitlab --memory-limit=2G > phpstan-codequality.json || true - vendor/wpdesk/wp-wpdesk-composer/director/vendor/bin/phpstan analyse --error-format=junit --memory-limit=2G > phpstan-junit.xml + vendor/wpdesk/wp-wpdesk-composer/director/vendor/bin/phpstan analyse --level 5 --error-format=gitlab --memory-limit=2G > phpstan-codequality.json || true + vendor/wpdesk/wp-wpdesk-composer/director/vendor/bin/phpstan analyse --level 5 --error-format=junit --memory-limit=2G > phpstan-junit.xml else echo "PHPStan not found! Install it with 'composer require --dev wpdesk/phpstan-rules'." - # We will be able to handle custom exit after removing rules.allow_failure part exit 125 fi - allow_failure: true artifacts: paths: - phpstan-codequality.json @@ -34,16 +31,11 @@ phpstan: - !reference [.skip-mr, rules] - exists: - phpstan.neon.dist - - exists: - - .phpstan-baseline.php - - .phpstan-baseline.neon - allow_failure: false phpcs: extends: .static-analysis script: - vendor/bin/phpcs --warning-severity=0 --report-junit=phpcs-junit.xml --report-full - allow_failure: true rules: - !reference [.skip-mr, rules] - exists: -- GitLab