我正在尝试为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中,我通过配置更改创建了一个合并请求(合并到主服务器)。还有一个带有一些错误代码的合并请求,该请求基于第一个具有配置的合并请求(合并到主服务器)。
错误代码:
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运行程序。
我遵循的指南:
答案 0 :(得分:2)
[从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存储库,仅包含您的示例文件和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/06/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代码质量构件存在一个未解决的问题
代码质量没有“下载”选项,并且在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问题
解决问题的步骤:
https://gitlab.com/Naor-Tedgi/cpp-ci-runner/blob/master/.gitlab-ci.yml
这是在上传工件后应该如何显示的结果
https://gitlab.com/Naor-Tedgi/cpp-ci-runner/-/jobs/236205051