릴리스 필드
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.
릴리스 노트 설명#
모든 릴리스에는 설명이 있습니다. 원하는 텍스트를 추가할 수 있지만, 릴리스 내용을 설명하는 변경 로그를 포함하는 것을 고려하세요. 이를 통해 사용자가 게시된 각 릴리스 간의 차이를 빠르게 파악할 수 있습니다.
Git의 태깅 메시지는 Include tag message in the release notes를 선택하여 릴리스 노트 설명에 포함할 수 있습니다.
설명은 Markdown을 지원합니다.
릴리스 자산#
릴리스에는 다음 유형의 자산이 포함됩니다:
소스 코드#
GitLab은 주어진 Git 태그에서 zip, tar.gz, tar.bz2, tar 압축 소스 코드를 자동으로 생성합니다. 이 자산은 읽기 전용이며 다운로드할 수 있습니다.
링크#
링크는 문서, 빌드된 바이너리 또는 기타 관련 자료 등 원하는 곳을 가리킬 수 있는 URL입니다. GitLab 인스턴스의 내부 또는 외부 링크 모두 가능합니다.
URL은 http, https, ftp 스키마 중 하나를 사용해야 합니다.
자산으로서의 각 링크에는 다음 속성이 있습니다:
| 속성 | 필수 여부 | 설명 |
|---|---|---|
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.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
자산의 실제 위치는 언제든지 변경될 수 있으며 직접 링크는 변경되지 않습니다.
릴리스가 비공개인 경우, api 또는 read_api 범위가 있는 개인 액세스 토큰을 private_token 쿼리 매개변수 또는 HTTP_PRIVATE_TOKEN 헤더를 사용하여 요청할 때 제공해야 합니다. 예:
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에 영향을 미치지 않으며 프로젝트의 릴리스 페이지에서 시각적 목적으로만 사용됩니다.
바이너리 첨부를 위한 일반 패키지 사용#
일반 패키지를 사용하여 릴리스 또는 태그 파이프라인의 모든 아티팩트를 저장할 수 있으며, 개별 릴리스 항목에 바이너리 파일을 첨부하는 데도 사용할 수 있습니다. 기본적으로 다음이 필요합니다:
다음 예시는 릴리스 자산을 생성하고 일반 패키지로 게시한 다음 릴리스를 만듭니다:
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 사용자는 release-cli에 전달하기 전에 --assets-link와 ConvertTo-Json을 위해 JSON 문자열 내의 큰따옴표 "를 `(백틱)으로 이스케이프해야 할 수 있습니다. 예:
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
작업 아티팩트 링크를 릴리스에 직접 첨부하는 것은 권장하지 않습니다. 아티팩트는 일시적이며 동일한 파이프라인에서 데이터를 전달하는 데 사용됩니다. 이는 만료되거나 누군가 수동으로 삭제할 위험이 있음을 의미합니다.
신규 및 전체 기능 수#
GitLab.com에서 프로젝트의 신규 및 전체 기능 수를 볼 수 있습니다.

총합은 shields에 표시되며 www-gitlab-com 저장소의 Rake 작업으로 릴리스별로 생성됩니다.
| 항목 | 공식 |
|---|---|
New features |
프로젝트의 단일 릴리스에 대해 전체 티어의 릴리스 게시물 총 수. |
Total features |
프로젝트의 전체 릴리스에 대해 역순으로 릴리스 게시물 총 수. |
수는 라이선스 티어별로도 표시됩니다.
| 항목 | 공식 |
|---|---|
New features |
프로젝트의 단일 릴리스에 대해 단일 티어의 릴리스 게시물 총 수. |
Total features |
프로젝트의 전체 릴리스에 대해 단일 티어의 역순으로 릴리스 게시물 총 수. |
