릴리스 필드

릴리스를 생성하거나 편집할 때 사용 가능한 다음과 같은 필드가 있습니다.

제목

릴리스 제목은 릴리스를 생성하거나 편집할 때 릴리스 제목 필드를 사용하여 사용자 정의할 수 있습니다. 제목을 제공하지 않으면 릴리스의 태그 이름이 대신 사용됩니다.

태그 이름

릴리스 태그 이름에는 릴리스 버전이 포함되어야 합니다. GitLab은 릴리스에 시맨틱 버전을 사용하며, 사용자도 이를 권장합니다. (Major).(Minor).(Patch)를 사용하며, 자세한 내용은 버전 관리 정책을 참조하세요.

예를 들어, GitLab 버전 16.1.1의 경우:

  • 16은 주 버전을 나타냅니다. 주 릴리스는 16.0.0이었지만 종종 16.0으로 언급됩니다.
  • 10은 부 버전을 나타냅니다. 부 릴리스는 16.1.0이었지만 종종 16.1으로 언급됩니다.
  • 1은 패치 번호를 나타냅니다.

버전 번호의 어떤 부분이든 여러 자릿수가 될 수 있으며, 예를 들어 16.10.11일 수 있습니다.

릴리스 노트 설명

모든 릴리스에는 설명이 있습니다. 원하는 텍스트를 추가할 수 있지만, 릴리스의 내용을 설명하는 변경 로그를 포함하는 것이 좋습니다. 이를 통해 사용자가 게시하는 각 릴리스 간의 차이를 빠르게 스캔할 수 있습니다.

Git에서 태깅 메시지릴리스 노트에 태깅 메시지 포함을 선택하여 릴리스 노트 설명에 포함할 수 있습니다.

설명은 마크다운(Markdown)을 지원합니다.

릴리스 자산

릴리스에는 다음 유형의 자산이 포함됩니다:

소스 코드

GitLab은 주어진 Git 태그에서 zip, tar.gz, tar.bz2tar 형식의 아카이브된 소스 코드를 자동으로 생성합니다. 이러한 자산은 읽기 전용이며, 코드 저장소 소스 코드 다운로드로 다운로드할 수 있습니다.

링크

링크는 문서, 빌드된 이진 파일 또는 기타 관련 자료 등을 가리킬 수 있는 URL입니다. GitLab 인스턴스에서의 내부 또는 외부 링크 모두 가능합니다. 각 링크는 다음과 같은 속성을 가지고 있습니다:

속성 설명 필수
name 링크의 이름
url 파일을 다운로드할 URL
filepath url로의 리디렉션 링크. 슬래시(/)로 시작해야 합니다. 자세한 내용은 이 섹션을 참조하세요. 아니요
link_type url을 통해 사용자가 다운로드할 수 있는 콘텐츠의 종류입니다. 자세한 내용은 이 섹션을 참조하세요. 아니요

릴리스 자산에 대한 영구 링크

  • GitLab 15.9에서 도입된 내용으로, 비공개 릴리스에 대한 링크는 개인 액세스 토큰을 사용하여 액세스할 수 있습니다.

릴리스와 연결된 자산은 영구적인 URL을 통해 액세스할 수 있습니다. GitLab은 항상 이 URL을 실제 자산 위치로 리디렉션하므로 자산이 다른 위치로 이동하더라도 동일한 URL을 계속 사용할 수 있습니다. 이는 filepath API 속성을 사용하여 링크 생성 또는 업데이트하는 동안 정의됩니다.

해당 URL의 형식은 다음과 같습니다:

https://host/namespace/project/-/releases/:release/downloads:filepath

예를 들어, gitlab.comgitlab-org 네임스페이스 및 gitlab-runner 프로젝트에 대한 v16.9.0-rc2 릴리스의 경우:

{
  "name": "linux amd64",
  "filepath": "/binaries/gitlab-runner-linux-amd64",
  "url": "https://gitlab-runner-downloads.s3.amazonaws.com/v16.9.0-rc2/binaries/gitlab-runner-linux-amd64",
  "link_type": "other"
}

이 자산은 다음과 같은 직접 링크를 가지고 있습니다:

https://gitlab.com/gitlab-org/gitlab-runner/-/releases/v16.9.0-rc2/downloads/binaries/gitlab-runner-linux-amd64

자산의 물리적 위치는 언제든지 변경될 수 있으며, 직접 링크는 그대로 유지됩니다.

릴리스가 비공개인 경우 요청을 할 때 private_token 쿼리 매개변수 또는 HTTP_PRIVATE_TOKEN 헤더를 사용하여 api 또는 read_api 스코프 중 하나를 지정하는 개인 액세스 토큰을 제공해야 합니다. 예:

curl --location --output filename "https://gitlab.example.com/my-group/my-project/-/releases/myrelease/downloads</path-to-file>?private_token=<your_access_token>"
curl --location --output filename --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/my-group/my-project/-/releases/myrelease/downloads</path-to-file>

최신 릴리스 자산에 대한 영구 링크

릴리스 자산에 대한 영구 링크filepath최신 릴리스에 대한 영구 링크와 함께 사용할 수 있습니다. filepath는 슬래시(/)로 시작해야 합니다.

해당 URL의 형식은 다음과 같습니다:

https://host/namespace/project/-/releases/permalink/latest/downloads:filepath

이 형식을 사용하여 최신 릴리스의 자산에 대한 영구 링크를 제공할 수 있습니다.

예를 들어, gitlab.comgitlab-org 네임스페이스 및 gitlab-runner 프로젝트에 대한 v16.9.0-rc2 최신 릴리스의 filepath가 있는 경우:

{
  "name": "linux amd64",
  "filepath": "/binaries/gitlab-runner-linux-amd64",
  "url": "https://gitlab-runner-downloads.s3.amazonaws.com/v16.9.0-rc2/binaries/gitlab-runner-linux-amd64",
  "link_type": "other"
}

이 자산은 다음과 같은 직접 링크를 가지고 있습니다:

https://gitlab.com/gitlab-org/gitlab-runner/-/releases/permalink/latest/downloads/binaries/gitlab-runner-linux-amd64

링크 유형

링크의 네 가지 유형은 “Runbook,” “Package,” “Image,” 그리고 “Other”입니다. link_type 매개변수는 다음 네 가지 값 중 하나를 허용합니다:

  • runbook
  • package
  • image
  • other (기본값)

이 필드는 URL에 영향을 미치지 않으며, 프로젝트의 릴리스 페이지에서 시각적 목적으로만 사용됩니다.

이진 파일 첨부에 일반적인 패키지 사용

일반 패키지(generic packages)를 사용하여 릴리스 또는 태그 파이프라인에서 아티팩트를 저장할 수 있으며, 이를 사용하여 개별 릴리스 항목에 바이너리 파일을 첨부하는 데도 사용할 수 있습니다. 기본적으로 다음을 수행해야 합니다:

  1. 아티팩트를 일반 패키지 레지스트리에 푸시.
  2. 패키지 링크를 릴리스에 첨부.

다음 예제는 릴리스 자산을 생성하고, 이를 일반 패키지로 게시한 다음 릴리스를 만드는 방법을 보여줍니다:

stages:
  - build
  - upload
  - release

variables:
  # 패키지 버전은 숫자(0-9) 및 점(.)만 포함할 수 있습니다.
  # X.Y.Z 형식이어야 하며, /\A\d+\.\d+\.\d+\z/ 정규 표현식과 일치해야 합니다.
  # https://docs.gitlab.com/ee/user/packages/generic_packages/#publish-a-package-file 참조
  PACKAGE_VERSION: "1.2.3"
  DARWIN_AMD64_BINARY: "myawesomerelease-darwin-amd64-${PACKAGE_VERSION}"
  LINUX_AMD64_BINARY: "myawesomerelease-linux-amd64-${PACKAGE_VERSION}"
  PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/myawesomerelease/${PACKAGE_VERSION}"

build:
  stage: build
  image: alpine:latest
  rules:
    - if: $CI_COMMIT_TAG
  script:
    - mkdir bin
    - echo "Mock binary for ${DARWIN_AMD64_BINARY}" > bin/${DARWIN_AMD64_BINARY}
    - echo "Mock binary for ${LINUX_AMD64_BINARY}" > bin/${LINUX_AMD64_BINARY}
  artifacts:
    paths:
      - bin/

upload:
  stage: upload
  image: curlimages/curl:latest
  rules:
    - if: $CI_COMMIT_TAG
  script:
    - |
      curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/${DARWIN_AMD64_BINARY} "${PACKAGE_REGISTRY_URL}/${DARWIN_AMD64_BINARY}"
    - |
      curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file bin/${LINUX_AMD64_BINARY} "${PACKAGE_REGISTRY_URL}/${LINUX_AMD64_BINARY}"

release:
  # Caution, as of 2021-02-02 these assets links require a login, see:
  # https://gitlab.com/gitlab-org/gitlab/-/issues/299384
  stage: release
  image: registry.gitlab.com/gitlab-org/release-cli:latest
  rules:
    - if: $CI_COMMIT_TAG
  script:
    - |
      release-cli create --name "Release $CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \
        --assets-link "{\"name\":\"${DARWIN_AMD64_BINARY}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${DARWIN_AMD64_BINARY}\"}" \
        --assets-link "{\"name\":\"${LINUX_AMD64_BINARY}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${LINUX_AMD64_BINARY}\"}"

PowerShell 사용자는 --assets-linkConvertTo-Json에서 JSON 문자열 내의 이중 인용부호 "` (백틱)로 이스케이프해야 할 수 있으며,이를 release-cli로 전달하기 전에 수행해야 합니다. 예를 들면 다음과 같습니다:

release:
  script:
    - $env:asset = "{`"name`":`"MyFooAsset`",`"url`":`"https://gitlab.com/upack/artifacts/download/$env:UPACK_GROUP/$env:UPACK_NAME/$($env:GitVersion_SemVer)?contentOnly=zip`"}"
    - $env:assetjson = $env:asset | ConvertTo-Json
    - release-cli create --name $CI_COMMIT_TAG --description "Release $CI_COMMIT_TAG" --ref $CI_COMMIT_TAG --tag-name $CI_COMMIT_TAG --assets-link=$env:assetjson

참고: 릴리스에 작업 아티팩트를 직접 첨부하는 것은 권장되지 않습니다. 이는 아티팩트가 일시적이고 동일한 파이프라인에서 데이터를 전달하는 데 사용되기 때문입니다. 이는 이러한 아티팩트가 만료되거나 수동으로 삭제될 수 있으므로 위험이 있음을 의미합니다.

신규 및 총 기능 수

Tier: Free, Premium, Ultimate Offering: GitLab.com

GitLab.com에서 프로젝트의 신규 기능과 총 기능 수를 확인할 수 있습니다.

기능 수

총 개수는 shields에서 표시되며, www-gitlab-com` 레포지토리의 Rake 작업에 의해 릴리스 당 생성됩니다.

항목 공식
신규 기능 프로젝트의 단일 릴리스에 대한 모든 티어에 걸친 릴리스 게시물 수의 총 개수.
총 기능 프로젝트의 모든 릴리스에 걸친 모든 티어의 릴리스 게시물 수의 총 개수.

이 수는 라이센스 티어로 나누어 표시됩니다.

항목 공식
신규 기능 프로젝트의 단일 릴리스에 대한 단일 티어에 걸친 모든 릴리스 게시물 수의 총 개수.
총 기능 프로젝트의 모든 릴리스에 걸친 단일 티어의 릴리스 게시물 수의 총 개수의 역순.