Sur ce projet: https://gitlab.com/tyvain/parcoursup/tree/master
J'ai une étape de qualité de code:
code_quality:
stage: code_quality
image: docker:stable
variables:
DOCKER_DRIVER: overlay2
allow_failure: true
services:
- docker:stable-dind
script:
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SOURCE_CODE="$PWD"
--volume "$PWD":/code
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
artifacts:
paths: [gl-code-quality-report.json]
Cette étape finit toujours par "passer". Journaux: https://gitlab.com/tyvain/parcoursup/-/jobs/94665791
Je doute que mon code soit parfait, donc il devrait y avoir des problèmes de qualité de code quelque part.
Où le rapport sur la qualité du code est-il censé être généré?
Quel est ce paramètre: "chemins d'accès: [gl-code-quality-report.json]"?
GitLab analyse et affiche les résultats dans les demandes de fusion. Il fonctionne en comparant les résultats de qualité de code précédents, donc la première fois que vous fusionnez le travail dans master
, vous ne verrez rien. Mais, il devrait fonctionner sur les demandes de fusion ultérieures.
C'est expliqué un peu plus en détail ici: Qualité du code
C'est vieux, mais en l'ajoutant ici, au cas où quelqu'un d'autre tomberait dessus. J'ai trouvé le même problème (succès, mais pas de sortie) et le résultat était que le test arrivait à expiration. Il y a un délai d'expiration par défaut de 900 secondes sur le moteur de climat climatique. Les images que le codeclimat utilise représentent bien plus de 1,5 Go de données, donc leur téléchargement prend une éternité sur une connexion lente. Lorsqu'ils expirent, ils renvoient le code de sortie 0, mais aucun rapport.
Vérifié en faisant cela localement:
docker run \
--env CODECLIMATE_CODE=/path/to/my/code \
--env CONTAINER_TIMEOUT_SECONDS=9000 \
--volume /path/to/my/code:/code \
--volume /tmp/cc:/tmp/cc \
--volume /var/run/docker.sock:/var/run/docker.sock \
--env CODECLIMATE_DEBUG=1 "codeclimate/codeclimate:0.83.0" \
analyze -f json
L'ajout de CONTAINER_TIMEOUT_SECONDS en tant que variable d'environnement vous permettra de dépasser cela, si le délai d'attente est votre problème. Je ne suis pas allé plus loin dans GitLab, car la documentation fait défaut, et je seulement voulait le style de contrôle, toutes les autres choses ne sont pas fournies avec la qualité du code dans GitLab, et la documentation n'était pas claire sur comment faire ça.