发布字段
创建或编辑发布时,可以使用以下字段。
标题
创建或编辑发布时,可以使用 发布标题 字段来自定义发布标题。如果没有提供标题,则使用发布的标签名称。
标签名称
发布标签名称应包含发布版本。GitLab 使用 语义化版本 来管理我们的发布,我们也建议您这样做。使用 (主版本).(次版本).(修订版本),详情请参见 GitLab 版本控制策略。
例如,对于 GitLab 版本 16.1.1:
16代表主版本。主版本发布是16.0.0,但通常简称为16.0。1代表次版本。次版本发布是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 下载的内容类型。更多信息请参见 本节。 |
否 |
发布资源的永久链接
与发布关联的资源可以通过永久 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链接类型
四种链接类型分别是 “运行手册”、“包”、“镜像” 和 “其他”。link_type 参数接受以下四个值之一:
runbookpackageimageother(默认)
此字段对 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 用户,可能需要在使用 --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不建议直接将 任务工件 链接附加到发布,因为工件是临时的,用于在同一流水线中传递数据。这意味着它们可能会过期,或者有人可能会手动删除它们。
新功能和总功能数量
- 版本:Free, Premium, Ultimate
- 提供:GitLab.com
在 GitLab.com 上,您可以查看项目中的新功能和总功能数量。
总数显示在 徽章 上,并由 www-gitlab-com 仓库中的 Rake 任务 为每个发布生成。
| 项目 | 公式 |
|---|---|
新功能 |
项目中单个发布在所有版本中的发布帖子总数。 |
总功能 |
项目中所有发布按反向顺序的发布帖子总数。 |
按许可证版本也显示计数。
| 项目 | 公式 |
|---|---|
新功能 |
项目中单个发布在单个版本中的发布帖子总数。 |
总功能 |
项目中所有发布按反向顺序在单个版本中的发布帖子总数。 |