PHPStan
Intégration de phpstan : analyse statique du code, avec un rapport en artefact.
Règles de déclenchement, cache Composer et caractère bloquant : voir le fonctionnement des jobs QA.
Fonctionnement
Après un composer install, le job lance phpstan trois fois, avec la configuration PHPSTAN_CONFIG_FILE :
- pour produire
codequality_phpstan.json, le rapport au format Code Quality de GitLab ; - pour produire un rapport JUnit ;
- pour le rapport lisible, écrit dans
PHPSTAN_QA_FILEet affiché dans le journal du job. C'est ce troisième passage qui décide du résultat du job.
Le nombre d'erreurs est relevé dans qa-reports-phpstan.env, pour le job deploy-metrics.
codequality_phpstan.json, PHPSTAN_QA_FILE et qa-reports-phpstan.env sont publiés en artefacts, conservés un jour, même quand le job échoue.
Utilisation
variables:
CI_TEMPLATE_VERSION: &CI_TEMPLATE_VERSION main
PHPSTAN_DOCKER_IMAGE: wodby/drupal-php:8.3-dev
PHPSTAN_QA_FILE: files/phpstan.txt
PHPSTAN_CONFIG_FILE: phpstan.neon
PHPSTAN_ALLOW_FAILURE: "true"
include:
- project: kgaut/gitlab-ci-templates
ref: *CI_TEMPLATE_VERSION
file:
- '/templates/generic/stages-variables-extends.yml'
- '/templates/qa/phpstan.yml'
Variables nécessaires
| Nom de la variable | Contenu | Exemple | Remarque |
|---|---|---|---|
| PHPSTAN_DOCKER_IMAGE | Image docker à utiliser pour exécuter le test | wodby/drupal-php:8.3-dev | par défaut wodby/drupal-php:7.4-dev ; à adapter au PHP du projet |
| PHPSTAN_QA_FILE | Chemin et nom du fichier de sortie, publié en artefact | files/phpstan.txt | par défaut files/phpstan.txt ; son dossier doit exister dans le dépôt |
| PHPSTAN_CONFIG_FILE | Fichier de config phpstan, relatif à la racine du projet | phpstan.neon | par défaut phpstan.neon |
| PHPSTAN_ALLOW_FAILURE | À une autre valeur que "true", un échec du job arrête la pipeline | "false" | par défaut "true" |
Liste des jobs
phpstan
Analyse statique du code (stage QA).