Help us learn about your current experience with the documentation. Take the survey.

发布证据

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

每次创建发布时,GitLab 会捕获与其相关的数据快照。 这些数据保存在 JSON 文件中,称为发布证据。该功能包括测试工件和关联的里程碑,以促进内部流程,如外部审计。

要访问发布证据,请在"发布"页面,选择"证据收集"标题下列出的 JSON 文件链接。

您也可以使用 API为现有发布生成发布证据。因此,每个发布可以有多个发布证据快照。您可以在"发布"页面查看发布证据及其详细信息。

当问题跟踪器被禁用时,发布证据无法下载

以下是发布证据对象的示例:

{
  "release": {
    "id": 5,
    "tag_name": "v4.0",
    "name": "新发布",
    "project": {
      "id": 20,
      "name": "项目名称",
      "created_at": "2019-04-14T11:12:13.940Z",
      "description": "项目描述"
    },
    "created_at": "2019-06-28 13:23:40 UTC",
    "description": "发布描述",
    "milestones": [
      {
        "id": 11,
        "title": "v4.0-rc1",
        "state": "closed",
        "due_date": "2019-05-12 12:00:00 UTC",
        "created_at": "2019-04-17 15:45:12 UTC",
        "description": "里程碑描述",
      },
      {
        "id": 12,
        "title": "v4.0-rc2",
        "state": "closed",
        "due_date": "2019-05-30 18:30:00 UTC",
        "created_at": "2019-04-17 15:45:12 UTC",
        "description": "里程碑描述",
      }
    ],
    "report_artifacts": [
      {
        "url":"https://gitlab.example.com/root/project-name/-/jobs/111/artifacts/download"
      }
    ]
  }
}

收集发布证据

  • Tier: Premium, Ultimate
  • Offering: GitLab Self-Managed, GitLab Dedicated

创建发布时,会自动收集发布证据。要在其他时间启动证据收集,请使用API 调用。您可以多次为一个发布收集发布证据。

证据收集快照在"发布"页面可见,并附有证据收集的时间戳。

将报告工件包含为发布证据

  • Tier: Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

创建发布时,如果作业工件包含在最后运行的管道中,它们会自动包含在发布中作为发布证据。

尽管作业工件通常会过期,但包含在发布证据中的工件不会过期。

要启用作业工件收集,您必须同时指定:

  1. artifacts:paths
  2. artifacts:reports
ruby:
  script:
    - gem install bundler
    - bundle install
    - bundle exec rspec --format progress --format RspecJunitFormatter --out rspec.xml
  artifacts:
    paths:
      - rspec.xml
    reports:
      junit: rspec.xml

如果管道运行成功,当您创建发布时,rspec.xml 文件将保存为发布证据。

如果您计划发布证据收集,某些工件在证据收集时可能已经过期。为避免这种情况,您可以使用artifacts:expire_in关键字。更多信息,请参见问题 222351

计划发布证据收集

在 API 中:

  • 如果您指定未来的 released_at 日期,发布将成为即将发布的版本,并在发布日期收集证据。在此之前,您无法收集发布证据。
  • 如果您指定过去的 released_at 日期,发布将成为历史发布,且不会收集任何证据。
  • 如果您不指定 released_at 日期,发布证据将在创建发布的日期收集。