リリースフィールド
リリースを作成または編集する際に、以下のフィールドが利用できます。
タイトル
リリースの作成または編集時に、リリースタイトルフィールドを使用してリリースタイトルをカスタマイズできます。タイトルが指定されていない場合、リリースのタグ名が代わりに使用されます。
タグ名
リリースのタグ名には、リリースのバージョンを含める必要があります。GitLabはリリースにセマンティックバージョニングを使用しており、あなたもそれを使用できます。GitLab Policy forバージョニングに詳述されているように、(Major).(Minor).(Patch)を使用します。
たとえば、GitLabバージョン16.10.1の場合:
16はメジャーバージョンを表します。メジャーリリースは16.0.0でしたが、しばしば16.0と表記されます。10はマイナーバージョンを表します。マイナーリリースは16.10.0でしたが、しばしば16.10と表記されます。1はパッチ番号を表します。
バージョン番号のどの部分も複数桁にすることができます。たとえば、16.10.11です。
リリースノートの説明
すべてのリリースには説明があります。好きなテキストを追加できますが、リリースの内容を説明するために変更履歴を含めることを検討してください。これにより、ユーザーは公開する各リリース間の差分を素早く確認できます。
タグ付けmessages in 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でダウンロードできるコンテンツの種類。詳細については、このセクションを参照してください。 |
リリースアセットへのパーマリンク
リリースに関連付けられたアセットは、永続的な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リンクの種類
リンクの種類は、「手順書」、「パッケージ」、「Image」、「Other」の4種類です。link_typeパラメータは、以下の4つの値のいずれかを受け入れます:
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に渡す前に、JSON文字列内の二重引用符"を、--assets-linkおよびConvertTo-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ジョブアーティファクトリンクをリリースに直接添付することは推奨されません。なぜなら、アーティファクトは一時的なものであり、同じパイプライン内でデータを渡すために使用されるためです。これは、それらが期限切れになるか、誰かが手動で削除する可能性があるというリスクを意味します。
新規および合計機能の数
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com
GitLab.comでは、プロジェクト内の新規および合計機能の数を表示できます。
合計はshieldsに表示され、www-gitlab-comリポジトリ内のRakeタスクによってリリースごとに生成されます。
| 項目 | 計算式 |
|---|---|
New features | プロジェクト内の単一のリリースに対するすべてのティアにわたるリリース投稿の総数。 |
Total features | プロジェクト内のすべてのリリースに対するリリース投稿の総数を逆順でカウント。 |
これらの数は、ライセンスティアごとにも表示されます。
| 項目 | 計算式 |
|---|---|
New features | プロジェクト内の単一のリリースに対する単一のティアにわたるリリース投稿の総数。 |
Total features | プロジェクト内のすべてのリリースに対する単一のティアにわたるリリース投稿の総数を逆順でカウント。 |
