릴리즈 증거

Tier: Free, Premium, Ultimate Offering: GitLab.com, 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",
        "issues": [
          {
            "id": 82,
            "title": "우측 상단 팝업이 고장났습니다",
            "author_name": "John Doe",
            "author_email": "john@doe.com",
            "state": "closed",
            "due_date": "2019-05-10 12:00:00 UTC"
          },
          {
            "id": 89,
            "title": "이 페이지의 제목이 잘못되었습니다",
            "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 날짜를 지정하지 않으면, 릴리즈 날짜에 증거가 수집됩니다.