Качество кода Gitlab: где отчет? - PullRequest
0 голосов
/ 05 сентября 2018

В этом проекте: https://gitlab.com/tyvain/parcoursup/tree/master

У меня есть этап качества кода:

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]

Эта стадия всегда завершается. Журналы: https://gitlab.com/tyvain/parcoursup/-/jobs/94665791

Я сомневаюсь, что мой код идеален, поэтому где-то должны быть проблемы с качеством кода.

Где должен выводиться отчет о качестве кода?
Что это за параметр: "paths: [gl-code-quality-report.json]"?

Ответы [ 3 ]

0 голосов
/ 05 сентября 2018

GitLab анализирует и отображает результаты в запросах на слияние. Он работает по сравнению с предыдущими результатами качества кода, поэтому при первом объединении задания в master вы ничего не увидите. Но он должен работать при последующих запросах на слияние.

Здесь объясняется немного подробнее: Качество кода

0 голосов
/ 27 марта 2019

Это старый, но добавьте это здесь, на случай, если кто-то еще наткнется на него. Я обнаружил ту же проблему (успех, но не вывод), и в результате тест истек. По умолчанию на движке кодеклима установлено время ожидания 900 секунд. Изображения, которые использует codeclimate, занимают более 1,5 ГБ данных, поэтому для их загрузки требуется медленное соединение. По истечении времени ожидания они возвращают код выхода 0, но не получают отчетов.

Проверено локально:

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

Добавление CONTAINER_TIMEOUT_SECONDS в качестве переменной среды позволит вам превзойти это, если ваша проблема связана с тайм-аутом. Я не стал использовать это в GitLab, так как документации не хватает, и я only хотел использовать контрольный стиль, а не все остальное, что поставляется с кодовым качеством в GitLab, и документация неясно, как сделать это.

0 голосов
/ 05 сентября 2018

2 проблемы здесь:

  • отчет доступен только для запроса на слияние в «gitlab EE edition» (не бесплатно)
  • отчет можно скачать в виде файла json здесь: where to download artifacts
...