为了在我们的构建和发布过程中尽量减少对外部资源的依赖,我们在极狐GitLab 资源中维护了各种软件依赖项的镜像。

该系统由两个群组组成,一个在 JihuLab.com,另一个在 dev.gitlab.org

  1. JihuLab.com 项目

    1. 拉取上游源的镜像,并将镜像推送到对应的 dev.gitlab.org 项目。
    2. 公开可用。应该可以供 trigger-package 流水线以及社区开发者用于构建自定义 omnibus-gitlab 软件包。
  2. dev.gitlab.org 项目:https://dev.gitlab.org/omnibus-mirror

    1. dev.gitlab.org 上的流水线使用这些项目来构建 omnibus-gitlab 项目。这包括软件包发布以及极狐GitLab 团队成员用于构建所有支持平台的自定义 omnibus-gitlab 软件包的构建。

添加项目

  1. gitlab-omnibus-mirror-bot 身份登录 JihuLab.com。登录详细信息在 1Password 的 Build 保险库中。
  2. 点击 新建项目 来创建一个项目
    1. 项目名称:通常应与上游名称匹配
    2. 项目 URL:从下拉菜单中的 群组 子群组中选择 gitlab-org/build/omnibus-mirror
    3. 可见性级别:设置为 公开
    4. 禁用任何会创建文件的选项,比如初始化 README.md
    5. 保留其他选项为默认,并点击 创建项目
  3. 设置拉取镜像
    1. 在左侧菜单中点击 设置 -> 仓库
    2. 镜像仓库 选项旁点击 展开
    3. Git 仓库 URL 设置为我们将要镜像的上游 URL
    4. 镜像方向 改为 拉取
    5. 选择 覆盖分叉的分支 选项
    6. 点击 镜像仓库 以添加拉取镜像。根据仓库的大小,这可能需要几分钟运行
    7. 保留此页面打开,因为稍后需要用到它
  4. build_mirror_bot 身份登录 dev.gitlab.org。登录详细信息在 1Password 的 Build 保险库中。
  5. 点击 新建项目 来创建一个项目
    1. 项目名称:通常应与上游名称匹配
    2. 项目 URL:从下拉菜单中的 群组 子群组中选择 omnibus-mirror
    3. 可见性级别:设置为 私有
    4. 保留其他选项为默认,并点击 创建项目
  6. 启用 omnibus-builder 部署密钥
    1. 导航到 设置 -> 仓库
    2. 部署密钥 部分旁点击 展开
    3. 点击 私有可访问的部署密钥 标签
    4. 找到 omnibus-builder 部署密钥 并点击旁边的 启用 按钮
  7. 设置推送镜像
    1. 返回 JihuLab.com 项目的 镜像仓库 页面
    2. Git 仓库 URL 中输入到 dev.gitlab.org 的路径,并在 https://dev.gitlab.org 之间插入 build_mirror_bot@
    3. 密码 中输入 1Password 中 Build 团队镜像机器人 条目中的 PAT
    4. 禁用任何会创建文件的选项,比如初始化 README.md
    5. 保留其他选项为默认,并点击 镜像仓库
    6. 点击 立即更新 按钮以触发初始镜像