リリースフィールド
リリースを作成または編集すると、以下のフィールドを使用できます。
タイトル
リリースのタイトルは、リリースの作成または編集時にリリースタイトルフィールドを使ってカスタマイズすることができます。タイトルを入力しない場合、リリースのタグ名が代わりに使用されます。
タグ名
リリースのタグ名にはリリースバージョンを含める必要があります。GitLabではリリースにセマンティック・バージョニングを使っています。GitLab Policy for Versioningにあるように、(Major).(Minor).(Patch)
を使ってください。
例えば、GitLabのバージョン10.5.7
:
-
10
はメジャーバージョンを表します。メジャーリリースは10.0.0
ですが、しばしば10.0
と呼ばれます。 -
5
はマイナーバージョンを表します。マイナーリリースは10.5.0
でしたが、しばしば10.5
と呼ばれます。 -
7
はパッチ番号です。
バージョン番号のどの部分も複数桁にすることができます。例えば、13.10.11
。
リリースノート
すべてのリリースには説明があります。好きなテキストを追加することができますが、リリースの内容を説明する変更履歴を含めることをお勧めします。これによってユーザーは、あなたが公開する各リリースの違いを素早く読み取ることができます。
Git のタグメッセージは、リリースノートにタグメッセージを含めるを選択することで、リリースノートの説明に含めることができます。
説明文はMarkdown をサポートしています。
リリースアセット
リリースには以下のタイプのアセットが含まれます:
ソースコード
GitLabは指定されたGitタグから自動的にzip
,tar.gz
,tar.bz2
,tar
アーカイブソースコードを生成します。これらは読み取り専用のアセットです。
リンク集
リンクとは、ドキュメントやビルドしたバイナリ、その他の関連資料など、好きなものを指すURLのことです。GitLabインスタンスからの内部リンクでも外部リンクでもかまいません。アセットとしての各リンクには以下の属性があります:
属性 | 説明 | 必須 |
---|---|---|
name | リンクの名前。 | はい |
url | ファイルをダウンロードするための URL。 | はい |
filepath |
url へのリダイレクトリンク。 詳細はこのセクションを参照してください。 | なし |
link_type | ユーザーがurl 経由でダウンロードできるコンテンツの種類。詳しくはこのセクションをご覧ください。 | なし |
最新リリースへの永久リンク
GitLab 14.9で導入されました。
最新リリースページはパーマネントURLからアクセスできます。GitLabは最新リリースページにアクセスすると、そのURLにリダイレクトします。
URLの形式は以下の通りです:
https://host/namespace/project/-/releases/permalink/latest
また、最新リリースへのリダイレクトにサフィックスパスを使用することもできます。例v14.8.0-ee
が最新リリースで、https://host/namespace/project/-/releases/v14.8.0-ee#release
という読みやすいリンクがある場合、https://host/namespace/project/-/releases/permalink/latest#release
というアドレスにすることができます。
サフィックスパスのキャリーフォワードの使い方については、最新リリースの資産へのパーマネントリンクのセクションを参照してください。
環境設定の並べ替え
デフォルトでは、GitLab はreleased_at
を使ってリリースを取得します。クエリパラメータ?order_by=released_at
の使用はオプションで、?order_by=semver
のサポートはこのイシューで追跡されています。
リリースアセットへのパーマリンク
GitLab 15.9で導入された非公開リリースのリンクは、パーソナルアクセストークンを使ってアクセスすることができます。
リリースに関連付けられたアセットには、永続的なURLでアクセスできます。GitLabは常にこのURLを実際のアセットの場所にリダイレクトするので、アセットが別の場所に移動しても、同じURLを使い続けることができます。これはリンクの作成や更新の際にfilepath
API 属性を使って定義します。
URLの形式は以下の通りです:
https://host/namespace/project/-/releases/:release/downloads/:filepath
gitlab-org
ネームスペースにv11.9.0-rc2
リリース用のアセットがあり、gitlab.com
にgitlab-runner
プロジェクトがある場合などです:
{
"name": "linux amd64",
"filepath": "/binaries/gitlab-runner-linux-amd64",
"url": "https://gitlab-runner-downloads.s3.amazonaws.com/v11.9.0-rc2/binaries/gitlab-runner-linux-amd64",
"link_type": "other"
}
このアセットには
https://gitlab.com/gitlab-org/gitlab-runner/-/releases/v11.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/:release/downloads/:filepath?private_token=<your_access_token>"
curl --location --output filename --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/my-group/my-project/-/releases/:release/downloads/:filepath"
最新リリースアセットへのパーマネントリンク
GitLab 14.9で導入されました。
リリースアセットへのパーマネントリンクからの filepath
は、最新リリースへのパーマネントリンクと組み合わせて使うことができます。これは、最新リリースからアセットをダウンロードするためのパーマネント URL をリンクしたい場合に便利です。
URLの形式は以下の通りです:
https://host/namespace/project/-/releases/permalink/latest/downloads/:filepath
例えば、gitlab-org
ネームスペースにv11.9.0-rc2
最新リリースのfilepath
のアセットがあり、gitlab.com
にgitlab-runner
プロジェクトがある場合:
{
"name": "linux amd64",
"filepath": "/binaries/gitlab-runner-linux-amd64",
"url": "https://gitlab-runner-downloads.s3.amazonaws.com/v11.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
リンクの種類
GitLab 13.1で導入されました。
リンクの種類は “Runbook”、”Package”、”Image”、”Other” の4つです。link_type
パラメータには、以下の4つの値のいずれかを指定します:
runbook
package
image
-
other
(デフォルト)
このフィールドは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, i.e. should match /\A\d+\.\d+\.\d+\z/ regular expresion.
# See 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ユーザーは、release-cli
に渡す前に、--assets-link
とConvertTo-Json
に対して`
(バックティック) を使用してJSON文字列内部でダブルクォート"
をエスケープする必要があるかもしれません:
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 13.5 で導入されました。
GitLab.comでは、プロジェクトの新機能数と全機能数を確認することができます。
合計値はシールドに表示され、www-gitlab-com
リポジトリ](https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/lib/tasks/update_gitlab_project_releases_page.rake)の Rake タスク[によってリリースごとに生成されます。
項目 | フォーミュラ |
---|---|
New features | プロジェクト内の1つのリリースについて、すべての階層にわたるリリース投稿の合計数。 |
Total features | プロジェクト内のすべてのリリースの逆順でのリリース投稿数の合計。 |
カウントはライセンス階層別にも表示されます。
項目 | フォーミュラ |
---|---|
New features | プロジェクト内の1つのリリースの1つの階層にわたるリリース投稿の総カウント。 |
Total features | プロジェクト内のすべてのリリースについて、1つの階層を逆順に並べたリリースの投稿数の合計。 |