릴리스 필드
릴리스를 생성하거나 편집할 때 사용 가능한 다음과 같은 필드가 있습니다.
제목
릴리스 제목은 릴리스를 생성하거나 편집할 때 릴리스 제목 필드를 사용하여 사용자 정의할 수 있습니다. 제목을 제공하지 않으면 릴리스의 태그 이름이 대신 사용됩니다.
태그 이름
릴리스 태그 이름에는 릴리스 버전이 포함되어야 합니다. 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.bz2
및 tar
형식의 아카이브된 소스 코드를 자동으로 생성합니다. 이러한 자산은 읽기 전용이며, 코드 저장소 소스 코드 다운로드로 다운로드할 수 있습니다.
링크
링크는 문서, 빌드된 이진 파일 또는 기타 관련 자료 등을 가리킬 수 있는 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.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에 영향을 미치지 않으며, 프로젝트의 릴리스 페이지에서 시각적 목적으로만 사용됩니다.
이진 파일 첨부에 일반적인 패키지 사용
일반 패키지(generic packages)를 사용하여 릴리스 또는 태그 파이프라인에서 아티팩트를 저장할 수 있으며, 이를 사용하여 개별 릴리스 항목에 바이너리 파일을 첨부하는 데도 사용할 수 있습니다. 기본적으로 다음을 수행해야 합니다:
다음 예제는 릴리스 자산을 생성하고, 이를 일반 패키지로 게시한 다음 릴리스를 만드는 방법을 보여줍니다:
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-link
및 ConvertTo-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
참고: 릴리스에 작업 아티팩트를 직접 첨부하는 것은 권장되지 않습니다. 이는 아티팩트가 일시적이고 동일한 파이프라인에서 데이터를 전달하는 데 사용되기 때문입니다. 이는 이러한 아티팩트가 만료되거나 수동으로 삭제될 수 있으므로 위험이 있음을 의미합니다.
신규 및 총 기능 수
GitLab.com에서 프로젝트의 신규 기능과 총 기능 수를 확인할 수 있습니다.
총 개수는 shields에서 표시되며, www-gitlab-com` 레포지토리의 Rake 작업에 의해 릴리스 당 생성됩니다.
항목 | 공식 |
---|---|
신규 기능
| 프로젝트의 단일 릴리스에 대한 모든 티어에 걸친 릴리스 게시물 수의 총 개수. |
총 기능
| 프로젝트의 모든 릴리스에 걸친 모든 티어의 릴리스 게시물 수의 총 개수. |
이 수는 라이센스 티어로 나누어 표시됩니다.
항목 | 공식 |
---|---|
신규 기능
| 프로젝트의 단일 릴리스에 대한 단일 티어에 걸친 모든 릴리스 게시물 수의 총 개수. |
총 기능
| 프로젝트의 모든 릴리스에 걸친 단일 티어의 릴리스 게시물 수의 총 개수의 역순. |