릴리스 증거

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

- GitLab 12.6에서 소개됨.

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

릴리스 증거에 액세스하려면 릴리스 페이지에서 Evidence collection 제목 아래에 나열된 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

- GitLab 12.10에서 소개됨.

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

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

레포트 아티팩트를 릴리스 증거로 포함

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

- GitLab 13.2에서 소개됨.

릴리스를 생성할 때, 마지막으로 실행된 파이프라인에 작업 아티팩트가 포함된 경우, 이들은 자동으로 릴리스 증거로 포함됩니다.

일반적으로 작업 아티팩트는 만료되지만, 릴리스 증거에 포함된 아티팩트는 만료되지 않습니다.

작업 아티팩트 수집을 가능하게 하려면 다음을 모두 지정해야 합니다.

  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 날짜를 지정하지 않으면, 릴리스가 생성된 날에 증거가 수집됩니다.