Gitlab代码质量:报告在哪里?

时间:2018-09-04 21:09:23

标签: gitlab gitlab-ci

在这个项目上: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]

此阶段始终以“ passed”结束。日志:https://gitlab.com/tyvain/parcoursup/-/jobs/94665791

我怀疑我的代码是否完美,因此应该在某处存在一些代码质量问题。

应该在哪里输出代码质量报告?
此参数是什么:“路径:[gl-code-quality-report.json]”?

5 个答案:

答案 0 :(得分:5)

这里有2个问题:

  • 该报告仅可用于“ gitlab EE版”中的合并请求(并非免费)
  • 可以在以下位置将报告作为json文件下载:where to download artifacts

答案 1 :(得分:4)

GitLab解析并在合并请求中显示结果。它通过与以前的代码质量结果进行比较来工作,因此,第一次将作业合并到master中时,您将看不到任何内容。但是,它应该适用于后续的合并请求。

此处有更详细的解释:Code Quality

答案 2 :(得分:0)

这是旧的,但是在这里添加它,以防其他人偶然发现。我发现了相同的问题(成功,但是没有输出),结果是测试超时。代码气候引擎默认有900秒的超时时间。代码气候所使用的图像的数据量远远超过1.5gb,因此它们需要很长时间才能通过缓慢的连接进行下载。他们超时时会返回退出代码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上进一步使用它,而且我想要使用checkstyle,并不是所有其他代码质量都随同GitLab一起提供,并且文档尚不清楚该怎么做。

答案 3 :(得分:0)

GitLab 13.6(2020年11月)的情况已经改变:

生成代码质量的HTML报告

代码质量报告为您提供了有关当前分支上发现的代码质量违规的各种信息,但是它们的格式不容易阅读。

现在,此报告以.html文件的形式提供,因此您可以更轻松地查看项目中的代码质量违规并确定影响。您甚至可以将文件托管在GitLab页面上,以便于查看!

感谢您的贡献Vicken Simonian

请参见DocumentationIssue

答案 4 :(得分:0)

从 GitLab 13.2 版开始,接受的答案应该是过时的,其中 code quality widget was made available to all tiers