Отчет CodeClimate в GitLab для C ++ не отображается - PullRequest
4 голосов
/ 07 июня 2019

Я пытаюсь активировать отчет об изменении кода для конвейеров запросов на слияние в GitLab. Анализатор CodeClimate запущен, но при добавлении плохого кода не отображаются предупреждения. Там может быть какая-то конфигурация, которую я пропустил.

Я добавил следующее в мой файл .gitlab-ci.yml в папке проекта rot:

include:
    - template: Code-Quality.gitlab-ci.yml

И я добавил .codeclimate.yml файл выглядит так:

plugins:
  cppcheck:
    enabled: true
    config:
      check: all
      language: c++
      stds:
        - c++14
        - c++17

Задание сборки завершается следующими строками в конце журнала:

f47a75dcba39: Pull complete
Digest: sha256:c8afb8c2037f7b9c5c9ae198aff00b1cf80db11d3591fbe89dfb3c69192663f1
Status: Downloaded newer image for codeclimate/codeclimate:0.72.0
WARNING: A new version (v0.85.3) is available. Upgrade instructions are available at: https://github.com/codeclimate/codeclimate#packages
Uploading artifacts...
gl-code-quality-report.json: found 1 matching files 
Uploading artifacts to coordinator... ok            id=227197201 responseStatus=201 Created token=4xyzSXzN
Job succeeded

Что здесь может быть не так, поскольку запрос на слияние не показывает никакого отчета CodeClimate?

В GitLab я создал один запрос на слияние с изменением конфигурации (слияние с master). И один запрос на слияние с некоторым неверным кодом, основанный на первом запросе на слияние с конфигурацией (слияние с master).

Плохой код:

int non_used_int;

int non_initialized_int;

int dummy = non_initialized_int;





// empty for loop
for (int i=0; i<100; i++) {

}

И последнее замечание: я использую общие бегуны GitLab, предоставляемые GitLab.

Руководства, за которыми я следовал:

1 Ответ

2 голосов
/ 20 июня 2019

[TLDR SCROLL DOWN TO SOLUTION]

вы должны получить больший контроль над файлом gitlab.yml , чтобы сделать это, установивgitlab-runner локально

после того, как ваш gitlab-runner и docker правильно установлены на вашем локальном компьютере

запустите его локально в вашем хранилище (вы должны находиться внутри папки хранилища по тому же пути, что и .gitlab.файл yml) начинается с минимального файла .gitlab.yml

команда для локального запуска, например,

sudo gitlab-runner exec docker <Task-Name>

, например, давайте возьмем этот минимальный файл gitlab.yml

image: walberla/cppcheck

cppcheck:
  script:
    - cppcheck --error-exitcode=1 . 

команда будет

sudo gitlab-runner exec docker cppcheck

, и результат будет выглядеть так:

enter image description here

теперь, если все работает нормально, следуя примеру конвейера gitlab, например, я сделал простое репозиторий gitlab, содержащий только ваш файл примера и gitlab.yml

https://gitlab.com/Naor-Tedgi/cpp-ci-runner/-/jobs/235981732

теперь мы получаем контроль над всем процессом, который вы можете точно видеть, что происходит внутри ci, и запускаете тот же процесс локально, например, в конвейере, изображение которого они используют docker:stable-did после выполнения тех же шагов вы поймете, чего вам не хватает

имейте в виду, что, поскольку вы используете докер в докере, вам нужно будет добавить --docker-privileged

 sudo gitlab-runner exec docker <Task-Name> --docker-privileged

[ОБНОВИТЬ!20/06/19]

после нашего разговора в чате и дальнейшего исследования я создал простой пример, использующий качество кода и тот же gitlab.yml, который упоминался выше, и получил ту же проблему

https://gitlab.com/Naor-Tedgi/cpp-ci-runner/-/jobs/235981732

enter image description here

ссылки на артефакты [404]: https://gitlab.com/Naor-Tedgi/cpp-ci-runner/-/jobs/235981732/artifacts/keep

мы обнаружили, что существует открытая проблема с gitlabАртефакты качества кода со вчерашнего дня

Качество кода без опции «Загрузить» и «Сохранить» приводит к 404

https://gitlab.com/gitlab-org/gitlab-ee/issues/12274

и необходимо следоватьвверх по этой теме для получения дополнительной информации

[РЕШЕНИЕ]

7heviking

после дальнейшего изучения шаблона Code-Quality.gitlab-ci.yml

в последнем коммите от 6 дней назад, который изменяет этот файл, они изменяют свойство paths на reports

enter image description here

, как показано здесь

https://gitlab.com/gitlab-org/gitlab-ee/commit/f0773d9ec8628e301c5a673ff7b7c2193569395d

взятие предыдущего файла с артефактами путей исправляет проблему с 404

шаги по устранению проблемы:

  • ожидание Gitlab Чтобы исправить это
  • или вы можете использовать codeclimate без файла шаблона, как яиспользуется в моем примере проекта

https://gitlab.com/Naor-Tedgi/cpp-ci-runner/blob/master/.gitlab-ci.yml

это результат того, как он должен выглядеть после загрузки артефактов

https://gitlab.com/Naor-Tedgi/cpp-ci-runner/-/jobs/236205051

...