InfoGrab DocsInfoGrab Docs

릴리스 필드

요약

릴리스를 생성하거나 편집할 때 다음 필드를 사용할 수 있습니다. 릴리스 제목은 릴리스를 생성하거나 편집할 때 Release title 필드에서 직접 지정할 수 있습니다. 릴리스 태그 이름에는 릴리스 버전을 포함해야 합니다.

릴리스를 생성하거나 편집할 때 다음 필드를 사용할 수 있습니다.

제목#

릴리스 제목은 릴리스를 생성하거나 편집할 때 Release title 필드에서 직접 지정할 수 있습니다. 제목을 입력하지 않으면 릴리스의 태그 이름이 대신 사용됩니다.

태그 이름#

릴리스 태그 이름에는 릴리스 버전을 포함해야 합니다. GitLab은 릴리스에 시맨틱 버저닝을 사용하며, 사용자도 같은 방식을 사용할 수 있습니다. GitLab 버전 관리 정책에 설명된 대로 (Major).(Minor).(Patch)를 사용합니다.

예를 들어 GitLab 버전 16.10.1의 경우는 다음과 같습니다.

  • 16은 메이저 버전입니다. 메이저 릴리스는 16.0.0 이지만 흔히 16.0으로 부릅니다.
  • 10은 마이너 버전입니다. 마이너 릴리스는 16.10.0 이지만 흔히 16.10으로 부릅니다.
  • 1은 패치 번호입니다.

버전 번호의 각 자리는 16.10.11처럼 여러 자릿수가 될 수 있습니다.

릴리스 노트 설명#

모든 릴리스에는 설명이 있습니다. 원하는 내용을 자유롭게 넣을 수 있지만, 릴리스의 내용을 설명하는 변경 로그를 포함하는 방안을 고려합니다. 변경 로그가 있으면 사용자가 게시된 릴리스 간의 차이를 빠르게 훑어볼 수 있습니다.

Include tag message in the release notes를 선택하면 Git의 태그 메시지를 릴리스 노트 설명에 포함할 수 있습니다.

설명은 Markdown을 지원합니다.

릴리스 자산#

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

소스 코드#

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

링크#

링크는 문서, 빌드된 바이너리, 그 밖의 관련 자료 등 원하는 대상을 가리킬 수 있는 URL입니다. GitLab 인스턴스 기준의 내부 링크와 외부 링크 모두 사용할 수 있습니다. URL은 http, https, ftp 스킴 중 하나를 사용해야 합니다. 자산으로 등록되는 각 링크는 다음 속성을 가집니다.

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

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

릴리스에 연결된 자산은 영구 URL로 접근할 수 있습니다. GitLab은 이 URL을 항상 실제 자산 위치로 리다이렉트하므로 자산이 다른 위치로 옮겨지더라도 같은 URL을 계속 사용할 수 있습니다. 이 URL은 filepath API 속성을 사용하여 링크를 생성하거나 업데이트할 때 정의됩니다.

URL 형식은 다음과 같습니다.

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

예를 들어 gitlab.com의 gitlab-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.com의 gitlab-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에 영향을 주지 않으며, 프로젝트의 Releases 페이지에서 표시 용도로만 사용됩니다.

바이너리 첨부를 위한 일반 패키지 사용#

일반 패키지를 사용하면 릴리스 또는 태그 파이프라인에서 생성된 아티팩트를 저장할 수 있고, 이를 개별 릴리스 항목에 바이너리 파일로 첨부하는 데에도 사용할 수 있습니다. 기본적으로 다음 작업이 필요합니다.

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

다음 예시는 릴리스 자산을 생성하여 일반 패키지로 게시한 다음 릴리스를 생성합니다.

stages:
  - build
  - upload
  - release

variables:
  # Package version can only contain numbers (0-9), and dots (.).
  # Must be in the format of X.Y.Z, and should match the /\A\d+\.\d+\.\d+\z/ regular expression.
  # See https://docs.gitlab.com/user/packages/generic_packages/#publish-a-package
  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/cli:latest
  rules:
    - if: $CI_COMMIT_TAG
  script:
    - |
      glab release create "$CI_COMMIT_TAG" --name "Release $CI_COMMIT_TAG" \
        --assets-links="[{\"name\":\"${DARWIN_AMD64_BINARY}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${DARWIN_AMD64_BINARY}\"},{\"name\":\"${LINUX_AMD64_BINARY}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${LINUX_AMD64_BINARY}\"}]"

PowerShell 사용자는 --assets-link와 ConvertTo-Json에서 JSON 문자열 안의 큰따옴표 "를 `(백틱)로 이스케이프한 다음 release-cli에 전달해야 할 수 있습니다. 예를 들면 다음과 같습니다.

release:
  script:
    - $env:assets = "[{`"name`":`"MyFooAsset`",`"url`":`"https://gitlab.com/upack/artifacts/download/$env:UPACK_GROUP/$env:UPACK_NAME/$($env:GitVersion_SemVer)?contentOnly=zip`"}]"
    - $env:assetsjson = $env:assets | ConvertTo-Json
    - glab release create $env:CI_COMMIT_TAG --name "Release $env:CI_COMMIT_TAG" --notes "Release $env:CI_COMMIT_TAG" --ref $env:CI_COMMIT_TAG --assets-links=$env:assetsjson
Note

job 아티팩트 링크를 릴리스에 직접 첨부하는 방식은 권장하지 않습니다. 아티팩트는 임시 자원이며 같은 파이프라인 안에서 데이터를 전달하는 데 사용되기 때문입니다. 즉, 아티팩트가 만료되거나 누군가 수동으로 삭제할 위험이 있습니다.

신규 및 전체 기능 수#

GitLab.com에서는 프로젝트의 신규 기능 수와 전체 기능 수를 확인할 수 있습니다.

GitLab 릴리스의 신규 기능 수와 전체 기능 수를 보여 주는 배지.

합계는 shields에 표시되며 www-gitlab-com 리포지터리의 Rake 태스크가 릴리스마다 생성합니다.

항목 공식
New features 프로젝트의 단일 릴리스에 대한 전체 티어의 릴리스 게시물 총 수입니다.
Total features 프로젝트의 전체 릴리스에 대한 릴리스 게시물의 역순 총 수입니다.

이 수치는 라이선스 티어별로도 표시됩니다.

항목 공식
New features 프로젝트의 단일 릴리스에 대한 단일 티어의 릴리스 게시물 총 수입니다.
Total features 프로젝트의 전체 릴리스에 대한 단일 티어의 릴리스 게시물 역순 총 수입니다.

릴리스 필드

GitLab v19.5
Tier: Free, Premium, Ultimate
Offering: GitLab.com
원문 보기

요약

릴리스를 생성하거나 편집할 때 다음 필드를 사용할 수 있습니다. 릴리스 제목은 릴리스를 생성하거나 편집할 때 Release title 필드에서 직접 지정할 수 있습니다. 릴리스 태그 이름에는 릴리스 버전을 포함해야 합니다.

릴리스를 생성하거나 편집할 때 다음 필드를 사용할 수 있습니다.

제목#

릴리스 제목은 릴리스를 생성하거나 편집할 때 Release title 필드에서 직접 지정할 수 있습니다. 제목을 입력하지 않으면 릴리스의 태그 이름이 대신 사용됩니다.

태그 이름#

릴리스 태그 이름에는 릴리스 버전을 포함해야 합니다. GitLab은 릴리스에 시맨틱 버저닝을 사용하며, 사용자도 같은 방식을 사용할 수 있습니다. GitLab 버전 관리 정책에 설명된 대로 (Major).(Minor).(Patch)를 사용합니다.

예를 들어 GitLab 버전 16.10.1의 경우는 다음과 같습니다.

  • 16은 메이저 버전입니다. 메이저 릴리스는 16.0.0 이지만 흔히 16.0으로 부릅니다.
  • 10은 마이너 버전입니다. 마이너 릴리스는 16.10.0 이지만 흔히 16.10으로 부릅니다.
  • 1은 패치 번호입니다.

버전 번호의 각 자리는 16.10.11처럼 여러 자릿수가 될 수 있습니다.

릴리스 노트 설명#

모든 릴리스에는 설명이 있습니다. 원하는 내용을 자유롭게 넣을 수 있지만, 릴리스의 내용을 설명하는 변경 로그를 포함하는 방안을 고려합니다. 변경 로그가 있으면 사용자가 게시된 릴리스 간의 차이를 빠르게 훑어볼 수 있습니다.

Include tag message in the release notes를 선택하면 Git의 태그 메시지를 릴리스 노트 설명에 포함할 수 있습니다.

설명은 Markdown을 지원합니다.

릴리스 자산#

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

소스 코드#

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

링크#

링크는 문서, 빌드된 바이너리, 그 밖의 관련 자료 등 원하는 대상을 가리킬 수 있는 URL입니다. GitLab 인스턴스 기준의 내부 링크와 외부 링크 모두 사용할 수 있습니다. URL은 http, https, ftp 스킴 중 하나를 사용해야 합니다. 자산으로 등록되는 각 링크는 다음 속성을 가집니다.

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

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

릴리스에 연결된 자산은 영구 URL로 접근할 수 있습니다. GitLab은 이 URL을 항상 실제 자산 위치로 리다이렉트하므로 자산이 다른 위치로 옮겨지더라도 같은 URL을 계속 사용할 수 있습니다. 이 URL은 filepath API 속성을 사용하여 링크를 생성하거나 업데이트할 때 정의됩니다.

URL 형식은 다음과 같습니다.

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

예를 들어 gitlab.com의 gitlab-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.com의 gitlab-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에 영향을 주지 않으며, 프로젝트의 Releases 페이지에서 표시 용도로만 사용됩니다.

바이너리 첨부를 위한 일반 패키지 사용#

일반 패키지를 사용하면 릴리스 또는 태그 파이프라인에서 생성된 아티팩트를 저장할 수 있고, 이를 개별 릴리스 항목에 바이너리 파일로 첨부하는 데에도 사용할 수 있습니다. 기본적으로 다음 작업이 필요합니다.

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

다음 예시는 릴리스 자산을 생성하여 일반 패키지로 게시한 다음 릴리스를 생성합니다.

stages:
  - build
  - upload
  - release

variables:
  # Package version can only contain numbers (0-9), and dots (.).
  # Must be in the format of X.Y.Z, and should match the /\A\d+\.\d+\.\d+\z/ regular expression.
  # See https://docs.gitlab.com/user/packages/generic_packages/#publish-a-package
  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/cli:latest
  rules:
    - if: $CI_COMMIT_TAG
  script:
    - |
      glab release create "$CI_COMMIT_TAG" --name "Release $CI_COMMIT_TAG" \
        --assets-links="[{\"name\":\"${DARWIN_AMD64_BINARY}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${DARWIN_AMD64_BINARY}\"},{\"name\":\"${LINUX_AMD64_BINARY}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${LINUX_AMD64_BINARY}\"}]"

PowerShell 사용자는 --assets-link와 ConvertTo-Json에서 JSON 문자열 안의 큰따옴표 "를 `(백틱)로 이스케이프한 다음 release-cli에 전달해야 할 수 있습니다. 예를 들면 다음과 같습니다.

release:
  script:
    - $env:assets = "[{`"name`":`"MyFooAsset`",`"url`":`"https://gitlab.com/upack/artifacts/download/$env:UPACK_GROUP/$env:UPACK_NAME/$($env:GitVersion_SemVer)?contentOnly=zip`"}]"
    - $env:assetsjson = $env:assets | ConvertTo-Json
    - glab release create $env:CI_COMMIT_TAG --name "Release $env:CI_COMMIT_TAG" --notes "Release $env:CI_COMMIT_TAG" --ref $env:CI_COMMIT_TAG --assets-links=$env:assetsjson
Note

job 아티팩트 링크를 릴리스에 직접 첨부하는 방식은 권장하지 않습니다. 아티팩트는 임시 자원이며 같은 파이프라인 안에서 데이터를 전달하는 데 사용되기 때문입니다. 즉, 아티팩트가 만료되거나 누군가 수동으로 삭제할 위험이 있습니다.

신규 및 전체 기능 수#

GitLab.com에서는 프로젝트의 신규 기능 수와 전체 기능 수를 확인할 수 있습니다.

GitLab 릴리스의 신규 기능 수와 전체 기능 수를 보여 주는 배지.

합계는 shields에 표시되며 www-gitlab-com 리포지터리의 Rake 태스크가 릴리스마다 생성합니다.

항목 공식
New features 프로젝트의 단일 릴리스에 대한 전체 티어의 릴리스 게시물 총 수입니다.
Total features 프로젝트의 전체 릴리스에 대한 릴리스 게시물의 역순 총 수입니다.

이 수치는 라이선스 티어별로도 표시됩니다.

항목 공식
New features 프로젝트의 단일 릴리스에 대한 단일 티어의 릴리스 게시물 총 수입니다.
Total features 프로젝트의 전체 릴리스에 대한 단일 티어의 릴리스 게시물 역순 총 수입니다.