릴리스 증거

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

릴리스가 생성될 때마다, GitLab은 관련 데이터의 스냅샷을 찍습니다. 이 데이터는 JSON 파일에 저장되며 릴리스 증거라고 합니다. 이 기능에는 내부 프로세스를 용이하게 하는 테스트 아티팩트와 연결된 마일스톤이 포함되어 있습니다. 외부 감사와 같은 내부 프로세스를 용이하게 하는 테스트 아티팩트와 연결된 마일스톤이 포함되어 있습니다.

릴리스 증거에 액세스하려면, 릴리스 페이지에서 증거 수집 제목 아래 나열된 JSON 파일에 대한 링크를 선택하세요.

또한 API를 사용하여 기존 릴리스에 대한 릴리스 증거를 생성할 수 있습니다. 따라서 각 릴리스 마다 여러 릴리스 증거 스냅샷이 있을 수 있습니다. 릴리스 페이지에서 릴리스 증거와 그 세부 정보를 볼 수 있습니다.

이슈 추적기가 비활성화된 경우, 릴리스 증거 다운로드할 수 없습니다.

다음은 릴리스 증거 객체의 예시입니다:

{
  "release": {
    "id": 5,
    "tag_name": "v4.0",
    "name": "New release",
    "project": {
      "id": 20,
      "name": "Project name",
      "created_at": "2019-04-14T11:12:13.940Z",
      "description": "Project description"
    },
    "created_at": "2019-06-28 13:23:40 UTC",
    "description": "Release 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",
        "issues": [
          {
            "id": 82,
            "title": "The top-right popup is broken",
            "author_name": "John Doe",
            "author_email": "john@doe.com",
            "state": "closed",
            "due_date": "2019-05-10 12:00:00 UTC"
          },
          {
            "id": 89,
            "title": "The title of this page is misleading",
            "author_name": "Jane Smith",
            "author_email": "jane@smith.com",
            "state": "closed",
            "due_date": "nil"
          }
        ]
      },
      {
        "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",
        "issues": []
      }
    ],
    "report_artifacts": [
      {
        "url":"https://gitlab.example.com/root/project-name/-/jobs/111/artifacts/download"
      }
    ]
  }
}

릴리스 증거 수집

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

릴리스가 생성될 때, 릴리스 증거는 자동으로 수집됩니다. 다른 시점에서 증거 수집을 시작하려면, API 호출을 사용하세요. 하나의 릴리스에 대해 여러 번의 릴리스 증거를 수집할 수 있습니다.

증거 수집 스냅샷은 릴리스 페이지에서 확인할 수 있으며, 증거 수집이 수행된 타임스탬프와 함께 표시됩니다.

보고서 아티팩트를 릴리스 증거에 포함하기

Tier: Ultimate Offering: GitLab.com, 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 날짜를 지정하지 않으면, 릴리스 증거는 릴리스 생성 날짜에 수집됩니다.