リリースフィールド

リリースを作成または編集すると、以下のフィールドを使用できます。

タイトル

リリースのタイトルは、リリースの作成または編集時にリリースタイトルフィールドを使ってカスタマイズすることができます。タイトルを入力しない場合、リリースのタグ名が代わりに使用されます。

タグ名

リリースのタグ名にはリリースバージョンを含める必要があります。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.comgitlab-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.comgitlab-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には影響せず、プロジェクトのリリースページで視覚的な目的のためだけに使用されます。

バイナリを添付するには汎用パッケージを使用してください

リリースやタグパイプラインのアーティファクトを保存するために、ジェネリックパッケージを使うことができます。基本的には、次のことが必要です:

  1. アーティファクトをジェネリック・パッケージ・レジストリにプッシュします。
  2. リリースにパッケージリンクを添付します。

次の例では、リリースアセットを生成し、汎用パッケージとして発行し、リリースを作成します:

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-linkConvertTo-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
note
アーティファクトはエフェメラルであり、同じパイプラインでデータの受け渡しに使用されるためです。これは、有効期限が切れたり、誰かが手動で削除したりするリスクがあることを意味します。

新機能と総機能の数

GitLab 13.5 で導入されました

GitLab.comでは、プロジェクトの新機能数と全機能数を確認することができます。

Feature count

合計値はシールドに表示され、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つの階層を逆順に並べたリリースの投稿数の合計。