kmpkg_from_gitlab
从 GitLab 实例下载并提取项目源码,同时支持 install --head 构建模式。
用法
kmpkg_from_gitlab(
GITLAB_URL <https://gitlab.com>
OUT_SOURCE_PATH <SOURCE_PATH>
REPO <gitlab-org/gitlab-ce>
[REF <v10.7.3>]
[SHA512 <45d0d7f8cc350...>]
[HEAD_REF <master>]
[PATCHES <patch1.patch> <patch2.patch>...]
[AUTHORIZATION_TOKEN <${SECRET_FROM_FILE}>]
[FILE_DISAMBIGUATOR <N>]
)
参数
GITLAB_URL
要使用的 GitLab 实例的 URL(例如官方实例 https://gitlab.com,或企业私有 GitLab 地址)。
OUT_SOURCE_PATH
指定用于存储提取后源码路径的输出变量。
按照惯例,应将该变量名设为 SOURCE_PATH。
REPO
GitLab 实例上的组织/用户名称 + 仓库名称(格式:<组织/用户>/<仓库>)。
REF
稳定的 Git 提交引用(优先推荐使用标签/tag),其对应的源码内容不会变更。禁止将分支名作为该参数的值。
对于无官方发布版本的仓库,可将此参数设为当前 master 分支最新提交的完整提交 ID。
若指定了 REF,则必须同时指定 SHA512 参数。
SHA512
需与归档文件匹配的 SHA512 哈希值,归档文件地址格式为:${GITLAB_URL}/${REPO}/-/archive/${REF}/${REPO_NAME}-${REF}.tar.gz(其中 REPO_NAME 会自动从 REPO 参数中解析出仓库名)。
获取该值最便捷的方式:先将此参数设为 0,然后尝试构建该端口;构建失败时的报错信息会包含文件完整的 SHA512 哈希值,直接复制该值回填到端口文件即可。
HEAD_REF
当以 --head 模式构建时,需要拉取的非稳定 Git 提交引用(优先推荐使用分支/branch)。
对于大多数项目,建议设为 master。所选分支需保证在所有支持的平台上始终可构建。
PATCHES
要应用到提取后源码上的补丁文件列表。
补丁文件的相对路径以当前端口目录为基准。
AUTHORIZATION_TOKEN
通过 HTTP 请求头 PRIVATE-TOKEN 传递的授权令牌(用于访问私有 GitLab 仓库)。
FILE_DISAMBIGUATOR
当 Git 引用未变更但 SHA512 哈希值发生变化时,用于唯一标识生成的文件名的令牌,避免不同版本的归档文件出现文件名冲突。
说明
REF 和 HEAD_REF 至少需指定其中一个,建议同时提供两者。
在 --head 模式构建时,该函数会导出 KMPKG_HEAD_VERSION 变量。