릴리스 필드
GitLab v19.5Offering: 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 파라미터는 다음 네 값 중 하나를 받습니다.
runbookpackageimageother(기본값)
이 필드는 URL에 영향을 주지 않으며, 프로젝트의 Releases 페이지에서 표시 용도로만 사용됩니다.
바이너리 첨부를 위한 일반 패키지 사용#
일반 패키지를 사용하면 릴리스 또는 태그 파이프라인에서 생성된 아티팩트를 저장할 수 있고, 이를 개별 릴리스 항목에 바이너리 파일로 첨부하는 데에도 사용할 수 있습니다. 기본적으로 다음 작업이 필요합니다.
다음 예시는 릴리스 자산을 생성하여 일반 패키지로 게시한 다음 릴리스를 생성합니다.
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
job 아티팩트 링크를 릴리스에 직접 첨부하는 방식은 권장하지 않습니다. 아티팩트는 임시 자원이며 같은 파이프라인 안에서 데이터를 전달하는 데 사용되기 때문입니다. 즉, 아티팩트가 만료되거나 누군가 수동으로 삭제할 위험이 있습니다.
신규 및 전체 기능 수#
GitLab.com에서는 프로젝트의 신규 기능 수와 전체 기능 수를 확인할 수 있습니다.

합계는 shields에 표시되며
www-gitlab-com 리포지터리의 Rake 태스크가 릴리스마다 생성합니다.
| 항목 | 공식 |
|---|---|
New features |
프로젝트의 단일 릴리스에 대한 전체 티어의 릴리스 게시물 총 수입니다. |
Total features |
프로젝트의 전체 릴리스에 대한 릴리스 게시물의 역순 총 수입니다. |
이 수치는 라이선스 티어별로도 표시됩니다.
| 항목 | 공식 |
|---|---|
New features |
프로젝트의 단일 릴리스에 대한 단일 티어의 릴리스 게시물 총 수입니다. |
Total features |
프로젝트의 전체 릴리스에 대한 단일 티어의 릴리스 게시물 역순 총 수입니다. |