릴리스 필드
릴리스를 생성하거나 편집할 때 사용할 수 있는 필드는 다음과 같습니다.
제목
릴리스 제목은 릴리스를 생성하거나 편집할 때 릴리스 제목 필드를 사용하여 사용자 정의할 수 있습니다. 제목이 제공되지 않으면 릴리스의 태그 이름이 대신 사용됩니다.
태그 이름
릴리스 태그 이름에는 릴리스 버전이 포함되어야 합니다. GitLab은 Semantic Versioning을 릴리스에 사용하며, 귀하도 이를 추천합니다. (Major).(Minor).(Patch)
형식을 사용하세요. 이는 버전 관리에 대한 GitLab 정책에서 자세히 설명되어 있습니다.
예를 들어, 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-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에 영향을 주지 않으며, 프로젝트의 릴리스 페이지에서 시각적 목적으로만 사용됩니다.
이진 파일을 첨부하기 위한 일반 패키지 사용
릴리스 또는 태그 파이프라인의 모든 아티팩트를 저장하는 데 일반 패키지를 사용할 수 있으며, 이를 사용하여 개별 릴리스 항목에 이진 파일을 첨부할 수도 있습니다. 기본적으로 다음을 수행해야 합니다:
다음 예제는 릴리스 자산을 생성하고, 이를 일반 패키지로 게시한 후, 릴리스를 생성합니다:
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:
# 주의, 2021-02-02 기준으로 이 자산 링크는 로그인이 필요합니다. 자세한 내용은:
# 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 사용자는 JSON 문자열 내의 이중 인용 부호 "
를 `
(백틱)으로 이스케이프해야 합니다. --assets-link
및 ConvertTo-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 작업에 의해 생성됩니다.
항목 | 수식 |
---|---|
New features |
프로젝트의 단일 릴리스에 대한 모든 티어의 릴리스 게시물 총 수. |
Total features |
프로젝트의 모든 릴리스에 대한 역순의 릴리스 게시물 총 수. |
카운트는 라이선스 티어별로도 표시됩니다.
항목 | 수식 |
---|---|
New features |
프로젝트의 단일 릴리스에 대한 단일 티어의 릴리스 게시물 총 수. |
Total features |
프로젝트의 모든 릴리스에 대한 단일 티어의 역순 릴리스 게시물 총 수. |