极狐GitLab CI/CD 产物报告类型

使用 artifacts:reports

  • 收集作业中包含的模板生成的测试报告、代码质量报告、安全报告和其它产物。
  • 其中一些报告用于显示以下信息:

无论作业结果如何(成功或失败),为 artifacts: reports 创建的产物总是被上传。 您可以使用 artifacts:expire_in 为其产物设置到期日期。

某些 artifacts:reports 类型可以由同一流水线中的多个作业生成,并由每个作业的合并请求或流水线功能使用。

为了能够浏览报告输出文件,请确保包含 artifacts:paths 关键字。

note 不支持使用子流水线中的产物在父流水线中组合报告。

artifacts:reports:accessibility

accessibility 报告使用 pa11y,报告合并请求中引入的更改对可访问性的影响。

系统可以在合并请求的可访问性部件中,显示一个或多个报告的结果。

artifacts:reports:api_fuzzing

  • 引入于 13.4 版本
  • 需要极狐GitLab Runner 13.4 或更高版本

api_fuzzing 报告收集了 API Fuzzing bug 作为产物。

系统可以在以下位置显示一个或多个报告的结果:

artifacts:reports:browser_performance

于 14.0 版本,名称从 artifacts:reports:performance 变更为当前名称

browser_performance 报告收集浏览器性能测试指标作为产物。

系统可以在合并请求浏览器性能测试小部件中显示一份报告的结果。

系统无法显示多个 browser_performance 报告的组合结果。

artifacts:reports:coverage_report

引入于 14.10 版本。

使用 coverage_report 收集 Cobertura 格式的覆盖率报告。

cobertura 报告收集 Cobertura 覆盖率 XML 文件

Cobertura 最初是为 Java 开发的,但有许多第三方端口可用于其他语言,例如 JavaScript、Python 和 Ruby。

artifacts:
  reports:
    coverage_report:
      coverage_format: cobertura
      path: coverage/cobertura-coverage.xml

收集的覆盖率报告作为产物上传到极狐GitLab。

系统可以在合并请求差异注释中显示覆盖率报告的结果。

artifacts:reports:codequality

对差异注释和完整流水线报告中的多个报告的支持引入于 15.7 版本。

codequality 报告收集代码质量问题。收集的代码质量报告作为产物上传到极狐GitLab。

系统可以显示一个或多个报告:

artifacts:reports:container_scanning

container_scanning 报告收集了容器扫描漏洞。 收集的容器扫描报告作为产物上传到极狐GitLab。

系统可以在以下位置显示一个或多个报告的结果:

artifacts:reports:coverage_fuzzing

  • 引入于 13.4 版本。
  • 需要极狐GitLab Runner 13.4 或更高版本。

coverage_fuzzing 报告收集了 coverage fuzzing bug。 收集到的覆盖率模糊测试报告作为产物上传到极狐GitLab。 系统可以在以下位置显示一个或多个报告的结果:

artifacts:reports:cyclonedx

引入于 15.3 版本。

本报告是一份软件材料清单,描述了遵循 CycloneDX 协议格式的项目组件。

您可以为每个作业指定多个 CycloneDX 报告,可以作为文件名列表、文件名样式提供:

  • 文件名样式(cyclonedx: gl-sbom-*.jsonjunit: test-results/**/*.json)。
  • 文件名数组(cyclonedx: [gl-sbom-npm-npm.cdx.json, gl-sbom-bundler-gem.cdx.json])。
  • 两者的组合(cyclonedx: [gl-sbom-*.json, my-cyclonedx.json])。
  • 不支持目录(cyclonedx: test-resultscyclonedx: test-results/**)。

以下是公开 CycloneDX 产物的作业示例:

artifacts:
  reports:
    cyclonedx:
      - gl-sbom-npm-npm.cdx.json
      - gl-sbom-bundler-gem.cdx.json

artifacts:reports:dast

dast 报告收集 DAST 漏洞。收集的 DAST 报告作为产物上传到极狐GitLab。

系统可以在以下位置显示一个或多个报告的结果:

artifacts:reports:dependency_scanning

dependency_scanning` 报告收集依赖扫描漏洞。 收集的依赖扫描报告作为产物上传到极狐GitLab。

系统可以在以下位置显示一个或多个报告的结果:

artifacts:reports:dotenv

dotenv 报告收集一组环境变量作为产物。

收集的变量被注册为作业的运行时创建的变量,您可以使用它来在作业完成后设置动态环境 URL

如果 dotenv 报告中存在重复的环境变量:

  • 在 14.6 及更高版本中,使用指定的最后一个。
  • 在 14.5 及更早版本中,发生错误。

原始 dotenv 规则的例外是:

  • 变量键只能包含字母、数字和下划线 (_)。
  • .env 文件的最大大小为 5 KB。此限制可以在私有化部署版实例上更改
  • 在 SaaS 版上继承变量的最大数量:基础版为 50,专业版为 100,旗舰版为 150。在私有化部署版上的默认值为 150,可以通过更改 dotenv_variables 应用程序限制来更改。
  • 不支持 .env 文件中的变量替换。
  • .env 文件中的多行值不受支持。
  • .env 文件不能有空行或注释(以 # 开头)。
  • env 文件中的键值不能包含空格或换行符 (\n),包括使用单引号或双引号时。
  • 不支持解析期间的引号转义 (key = 'value' -> {key: "value"})。
  • 支持 UTF-8 编码。

artifacts:reports:junit

junit 报告收集 JUnit 报告格式 XML 文件。 收集的单元测试报告作为产物上传到极狐GitLab。尽管 JUnit 最初是用 Java 开发的,但有许多第三方端口可用于其他语言,例如 JavaScript、Python 和 Ruby。

有关更多详细信息和示例,请参阅单元测试报告。 下面是从 Ruby 的 RSpec 测试工具收集 JUnit 报告格式 XML 文件的示例:

rspec:
  stage: test
  script:
    - bundle install
    - rspec --format RspecJunitFormatter --out rspec.xml
  artifacts:
    reports:
      junit: rspec.xml

极狐GitLab 可以在以下位置显示一个或多个报告的结果:

一些 JUnit 工具导出到多个 XML 文件。您可以在单个作业中指定多个测试报告路径,以将它们连接到单个文件中,使用以下方式之一:

  • 文件名模式(junit: rspec-*.xmljunit: test-results/**/*.xml)。
  • 文件名数组(junit: [rspec-1.xml, rspec-2.xml, rspec-3.xml])。
  • 两者的组合(junit: [rspec.xml, test-results/TEST-*.xml])。
  • 不支持目录(junit: test-resultsjunit: test-results/**)。

artifacts:reports:license_scanning

许可证合规性报告收集许可证。许可证合规性报告作为产物上传到极狐GitLab。

系统可以在以下位置显示一个或多个报告的结果:

  • 合并请求许可证合规性小部件
  • 许可列表

artifacts:reports:load_performance

  • 引入于 13.2 版本。
  • 需要极狐GitLab Runner 11.5 或更高版本。

load_performance 报告收集负载性能测试指标。 该报告作为产物上传到极狐GitLab。

系统只能在合并请求负载测试小部件中显示一份报告的结果。

系统无法显示多个 load_performance 报告的组合结果。

artifacts:reports:metrics

metrics 报告收集指标。收集的 Metrics 报告作为产物上传到极狐GitLab。

系统可以在合并请求指标报告小部件中显示一个或多个报告的结果。

artifacts:reports:requirements

requirements 报告收集 requirements.json 文件。收集的需求报告作为产物上传到极狐GitLab,现有的需求被标记为满意。

系统可以在项目需求中显示一份或多份报告的结果。

artifacts:reports:sast

sast 报告收集 SAST 漏洞。收集的 SAST 报告作为产物上传到极狐GitLab。

系统可以在以下位置显示一个或多个报告的结果:

artifacts:reports:secret_detection

  • 引入于 13.1 版本。
  • 移动到基础版于 13.3 版本。
  • 需要极狐GitLab Runner 11.5 及更高版本,

secret-detection 报告收集检测到的 secrets。 收集到的 Secret Detection 报告上传到极狐GitLab。

系统可以在以下位置显示一个或多个报告的结果: