Skip to content
Snippets Groups Projects
Verified Commit 8bc6f68f authored by Bartek Jaskulski's avatar Bartek Jaskulski
Browse files

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: default avatarBart Jaskulski <bjaskulski@protonmail.com>
parent 355711dd
No related branches found
No related tags found
No related merge requests found
.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:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment