GitLab for c++ 中的 CodeClimate 报告未显示
CodeClimate report in GitLab for c++ not showing
我正在尝试为 GitLab 中的合并请求管道激活代码气候报告。 CodeClimate 分析器是 运行 但是当我添加一些错误代码时没有显示任何警告。可能有一些我遗漏的配置。
我已将以下内容添加到项目 rot 文件夹中的 .gitlab-ci.yml 文件中:
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 运行程序。
我遵循的指南:
[TLDR 向下滚动到解决方案]
您必须对 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
输出将如下所示:
现在,如果一切正常以遵循我制作的 gitlab 管道输出为例
一个简单的 gitlab repo 只包含你的示例文件和 gitlab.yml
https://gitlab.com/Naor-Tedgi/cpp-ci-runner/-/jobs/235981732
现在我们获得了对所有进程的控制权,您可以准确地看到 ci 和 运行 内部的相同进程,例如在管道中
他们使用的图像是 docker:stable-did
在 运行 执行相同的步骤后你会明白你错过了什么
请记住,因为您在 docker 中使用 docker,所以您需要添加 --docker-privileged
sudo gitlab-runner exec docker <Task-Name> --docker-privileged
[更新! 19 年 6 月 20 日]
经过我们的交谈,进一步调查
我使用代码质量创建了一个简单的示例,并且 gitlab.yml 与上面提到的相同,但遇到了同样的问题
https://gitlab.com/Naor-Tedgi/cpp-ci-runner/-/jobs/235981732
工件链接 [404]:https://gitlab.com/Naor-Tedgi/cpp-ci-runner/-/jobs/235981732/artifacts/keep
我们发现自昨天以来 gitlab 代码质量工件存在一个未解决的问题
Code Quality no 'Download' option and 'Keep' results in 404
https://gitlab.com/gitlab-org/gitlab-ee/issues/12274
并且需要跟进此线程以获取更多信息
[解决方案]
在对模板进行更多调查后 Code-Quality.gitlab-ci.yml
在 6 天前更改此文件的最后一次提交中,
他们将 paths
属性 更改为 reports
如图所示
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
我正在尝试为 GitLab 中的合并请求管道激活代码气候报告。 CodeClimate 分析器是 运行 但是当我添加一些错误代码时没有显示任何警告。可能有一些我遗漏的配置。
我已将以下内容添加到项目 rot 文件夹中的 .gitlab-ci.yml 文件中:
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 运行程序。
我遵循的指南:
[TLDR 向下滚动到解决方案]
您必须对 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
输出将如下所示:
现在,如果一切正常以遵循我制作的 gitlab 管道输出为例
一个简单的 gitlab repo 只包含你的示例文件和 gitlab.yml
https://gitlab.com/Naor-Tedgi/cpp-ci-runner/-/jobs/235981732
现在我们获得了对所有进程的控制权,您可以准确地看到 ci 和 运行 内部的相同进程,例如在管道中
他们使用的图像是 docker:stable-did
在 运行 执行相同的步骤后你会明白你错过了什么
请记住,因为您在 docker 中使用 docker,所以您需要添加 --docker-privileged
sudo gitlab-runner exec docker <Task-Name> --docker-privileged
[更新! 19 年 6 月 20 日]
经过我们的交谈,进一步调查 我使用代码质量创建了一个简单的示例,并且 gitlab.yml 与上面提到的相同,但遇到了同样的问题
https://gitlab.com/Naor-Tedgi/cpp-ci-runner/-/jobs/235981732
工件链接 [404]:https://gitlab.com/Naor-Tedgi/cpp-ci-runner/-/jobs/235981732/artifacts/keep
我们发现自昨天以来 gitlab 代码质量工件存在一个未解决的问题
Code Quality no 'Download' option and 'Keep' results in 404
https://gitlab.com/gitlab-org/gitlab-ee/issues/12274
并且需要跟进此线程以获取更多信息
[解决方案]
在对模板进行更多调查后 Code-Quality.gitlab-ci.yml
在 6 天前更改此文件的最后一次提交中,
他们将 paths
属性 更改为 reports
如图所示
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