9

今天,在尝试在我的.gitlab-ci.yml(on gitlab-ee 11.10, gitlab-runner 11.10) 中设置 CodeQuality 时,我遇到了以下问题:

GitLab 文档告诉您的第一件事是,可以借助 DockerInDockergitlab-runner和单个配置行进行设置:

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

还有免责声明在gitlab 11.11或更高版本中支持此功能,这很奇怪,因为截至 2019 年 4 月 23 日,最新版本是11.10. 不确定这是否是一个错字,或者他们是否在发布实际可用之前发布了文档。

我尝试按照此说明进行操作,但许多事情尚不清楚:

  1. 我意识到include应该在stages定义之后添加该语句以通过语法检查。

  2. 一个code_quality工作出现并通过了:


(来源: coyo.io )

但是,后来我从这个答案中了解到我需要创建一个.codeclimate.yml文件并以某种方式添加它.gitlab-ci.yml。该答案共享两个链接,可用于了解如何使用,CodeClimate但我还没有找到添加到gitlab-ci.yml. 我在这个gitlab 相关页面中找到了一些示例,但是这没有使用include文档中描述的语句。

  1. 我找不到通过的code_quaity工作报告。在这个答案中,有人指出该报告仅可在合并请求时下载gitlab-ee。然而,这是不切实际的,因为那时开发人员将不得不开始向模拟合并请求发送垃圾邮件,以查看他们的代码是否受到了降级。

我使用的gitlab-ci.yml看起来像这样:

image: docker:stable

variables:
  ARTEFACT: my_app
  VERSION: 0.1
  DOCKER_HOST: tcp://docker:2375/
  DOCKER_DRIVER: overlay2

services:
  - docker:dind

before_script:
  - docker info

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - docker build -t $ARTEFACT:$VERSION-DEV .

test:
  stage: test
  script:
    - docker run --rm --env MODE=DEV $ARTEFACT:$VERSION-DEV ./my_test.sh

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

理想情况下,这应该很简单,比如弄清楚如何CodeClimate用于 python 应用程序,然后将其配置添加到 repo 并gitlab-ci.yml正确引用?但是如何做参考。在某处是否有任何明确的文档可用?

编辑:我现在知道作业是独立的,我应该修改上面的build阶段.gitlab-ci.yml以将构建映像推送到其他作业可以从中提取的位置。这仍然无助于解决我认为的 CodeQuality 问题。

4

1 回答 1

0

首先,是的,GitLab 通常在正式发布之前有即将发布的功能的文档。这些文档通常适用于通常在 GitLab.com 上运行的预发布版本。

文档可能会更清晰,因此我鼓励您提交有关如何改进文档的具体问题,或者如果您对此感到满意,甚至提交 MR。

请注意,代码质量是一项付费功能,因此需要 Starter 许可证才能进行自我管理安装(或 GitLab.com 上的 Bronze)。

代码质量过程将基于第一次运行的信息存储在文件codeclimate.json中。这只是未来运行的参考,而不是代码质量报告本身。在随后的运行中,将在启动管道的合并请求中查看代码气候报告。

为了使代码气候报告出现在合并请求中,必须满足以下条件:

  • 您已经在您的工作中定义了一个.gitlab-ci.yml生成代码质量报告工件的工作
  • 该作业不能是第一次运行。如果代码质量报告没有可比较的内容,则合并请求区域中不会显示任何信息。当您.gitlab-ci.yml第一次添加代码质量作业时就是这种情况。连续的合并请求将有一些可比较的东西,并且代码质量报告将正确显示。
  • 必须存在代码错误。您的代码中必须存在降级/错误,因为这将显示在合并请求页面中。如果代码正确,则不会显示任何内容。
  • .json 文件不能太大。当相关的 .json 文件非常大时,存在一个阻止代码报告显示的问题。
于 2020-01-19T20:36:42.707 回答