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