- 测试
gitlab-org/gitlab
项目的合并请求 - 测试
omnibus-gitlab
项目的 MR - 使用极狐GitLab 组件的特定分支或版本
- 使用极狐GitLab 组件的特定镜像或分叉
- 为其他操作系统构建软件包
如果您是极狐GitLab 团队成员,您可以访问构建基础设施或访问有权限的同事。您可以利用这些权限来构建软件包。
测试 gitlab-org/gitlab
项目的合并请求
如果您在 gitlab-org/gitlab
项目中有一个合并请求 (MR),您可以使用软件包或 Docker 镜像来测试该 MR。
在您的 MR 上应用 ~"pipeline:run-all-e2e"
标签并运行新的流水线。这将包含在 qa
阶段的 e2e:test-on-omnibus-ee
作业,该作业触发:
- 一个下游流水线在
omnibus-gitlab
QA 镜像,这为您提供一个 Ubuntu 22.04 软件包和一个用于测试的全功能 Docker 镜像。 - 使用这些产物运行一个
gitlab-qa
。
测试 omnibus-gitlab
项目的 MR
如果您在 omnibus-gitlab
项目中有一个 MR,您可以使用软件包或 Docker 镜像来测试该 MR。
与极狐GitLab 项目类似,运行于 omnibus-gitlab
中的 MR 的流水线也有手动作业来获取软件包或 Docker 镜像。Trigger:ce-package
和 Trigger:ee-package
作业构建基础版和企业版软件包以及 Docker 镜像,并进行 QA 运行。
使用极狐GitLab 组件的特定分支或版本
极狐GitLab 主要组件的版本,如极狐GitLab Rails 或 Gitaly,通过以下方式控制:
-
*_VERSION
文件在omnibus-gitlab
仓库中。 - 在构建期间存在的
*_VERSION
环境变量。
查看下表以获取更多信息:
文件名 | 环境变量 | 描述 |
---|---|---|
VERSION |
GITLAB_VERSION |
控制极狐GitLab Rails 应用的 Git 引用。默认情况下,指向 GitLab-FOSS 仓库的 master 分支。如果您想使用极狐GitLab 仓库,请将环境变量 ee 设置为 true。 |
GITALY_SERVER_VERSION |
GITALY_SERVER_VERSION |
Gitaly 仓库的 Git 引用。 |
GITLAB_PAGES_VERSION |
GITLAB_PAGES_VERSION |
极狐GitLab Pages 仓库的 Git 引用。 |
GITLAB_SHELL_VERSION |
GITLAB_SHELL_VERSION |
极狐GitLab Shell 仓库的 Git 引用。 |
GITLAB_ELASTICSEARCH_INDEXER_VERSION |
GITLAB_ELASTICSEARCH_INDEXER_VERSION |
极狐GitLab Elasticsearch Indexer 仓库的 Git 引用。仅用于企业版构建。 |
GITLAB_KAS_VERSION |
GITLAB_KAS_VERSION |
极狐GitLab Kubernetes Agent Server 仓库的 Git 引用。 |
如果您从极狐GitLab MR 运行 e2e:test-on-omnibus
作业,GITLAB_VERSION
环境变量设置为与流水线对应的提交 SHA。其他环境变量,如果未指定,则从其对应的文件中填充并传递给触发的流水线。
{{< alert type=”note” >}}
环境变量优先于 *_VERSION
文件。
{{< /alert >}}
临时指定组件版本
使用以下任一方法临时指定组件版本:
-
编辑
*_VERSION
文件,提交并推送以启动流水线,但在 MR 标记为准备合并之前还原此更改。我们建议您在 MR 中对此差异打开一个未解决的讨论,以便您记得还原它。 -
在
.gitlab-ci.yml
文件中设置环境变量,提交并推送以启动流水线,但在 MR 标记为准备合并之前还原此更改。我们建议您在 MR 中对此差异打开一个未解决的讨论,以便您记得还原它。 -
作为 Git 推送选项 传递环境变量。
git push <REMOTE> -o ci.variable="<ENV_VAR>=<VALUE>" # Passing multiple variables git push <REMOTE> -o ci.variable="<ENV_VAR_1>=<VALUE_1>" -o ci.variable="<ENV_VAR_2>=<VALUE_2>"
Note
: 这仅在您有一些更改需要推送时有效。如果远程已经更新到您的本地分支,则不会创建新的流水线。 -
手动从 UI 运行流水线,同时指定环境变量。
环境变量被传递到在 QA 镜像中触发的下游流水线中,以便它们在构建期间使用。
您应该使用环境变量而不是更改 *_VERSION
文件,以避免额外的还原步骤。当您需要重复构建 omnibus-gitlab
软件包时,*_VERSION
文件是最有效的,但唯一的变化发生在极狐GitLab 组件中。在这种情况下,当在更改 *_VERSION
文件后运行流水线时,可以重试以构建新的软件包,从上游组件功能分支拉取更改,而不是手动运行新的流水线。
使用极狐GitLab 组件的特定镜像或分叉
Omnibus 构建的大多数软件的仓库来源在 omnibus-gitlab
仓库中的 .custom_sources.yml
文件中。您可以使用环境变量覆盖主要的极狐GitLab 组件。查看下表以了解详细信息:
环境变量 | 描述 |
---|---|
ALTERNATIVE_PRIVATE_TOKEN |
如果需要从私有仓库中拉取时使用的访问令牌。 |
GITLAB_ALTERNATIVE_REPO |
极狐GitLab Rails 应用的 Git 仓库位置。 |
GITLAB_SHELL_ALTERNATIVE_REPO |
极狐GitLab Shell 的 Git 仓库位置。 |
GITLAB_PAGES_ALTERNATIVE_REPO |
极狐GitLab Pages 的 Git 仓库位置。 |
GITALY_SERVER_ALTERNATIVE_REPO |
Gitaly 的 Git 仓库位置。 |
GITLAB_ELASTICSEARCH_INDEXER_ALTERNATIVE_REPO |
极狐GitLab Elasticsearch Indexer 的 Git 仓库位置。 |
GITLAB_KAS_ALTERNATIVE_REPO |
极狐GitLab Kubernetes Agent Server 的 Git 仓库位置。 |
为其他操作系统构建软件包
前提条件:
- 您必须有权限将分支推送到
omnibus-gitlab
发布镜像:https://dev.gitlab.org/gitlab/omnibus-gitlab
。
使用发布镜像来:
- 为 Ubuntu 22.04 以外的操作系统构建软件包。
- 确保能够在所有操作系统上构建包含您更改的软件包。
为其他操作系统构建软件包:
-
如上节所述修改
*_VERSION
文件或环境变量(如果需要)。您可能需要在 CI 配置 中设置ee
环境变量为true
,以便使用极狐GitLab 仓库中的提交而不是 GitLab-FOSS。 -
将您的分支推送到发布镜像并检查流水线:
https://dev.gitlab.org/gitlab/omnibus-gitlab/-/pipelines
。 -
流水线为所有支持的操作系统构建软件包和 Docker 镜像。