为 gitlab CI 存储大型构建文件

问题描述 投票:0回答:1

我正在开发一个需要自定义构建大型库的项目。

通常,这些库依赖项将被上传到工件并命名为 QT6.static.tar.gz 之类的名称。当 gitlab CI/CD 管道启动时,它可以拉取这些依赖项并开始构建。

我现在的情况是我唯一的工具是 gitlab。 gitlab 中的工件似乎与创建它们的管道有着千丝万缕的联系。

我希望我的 CI 工作流程如下:

  1. Git commit 使用一个变量来触发管道,该变量表示哪个 可以使用的神器。
  2. 如果指定的工件不存在,则启动创建它们的作业, 然后导出工件。
  3. 正常编译代码并针对工件提交更改

我可以通过使用容器注册表和 docker 层缓存来复制这一点 - 但这似乎有点做作。或者,这些构建的文件可以存储在 git LFS 中,但我也不喜欢这种解决方案。

git gitlab gitlab-ci gitlab-ci-runner git-lfs
1个回答
0
投票

在这种情况下,如果您只想使用 GitLab 作为 Artifactory 的直接替代品,您可以使用 Generic Package Registry 而不是 GitLab CI 工件,正如您所指出的,它主要只在以下范围内相关:创建它们的管道(或依赖于这些工件的子管道)。

因此,通过使用通用包注册表,您可以将依赖项上传到包注册表,并确保它们始终可用,无论正在运行的管道(甚至项目)如何 - 基本上就像您的方式一样将在您使用 Artifactory 描述的工作流程中完成。

请记住,默认的文件大小限制为 5GB。此限制可以在自托管的 GitLab 实例上配置,但不能在 gitlab.com 上配置 - 如果您的工件大于此限制,您将需要配置该限制(如果在自托管)或拆分您的存档分成多个部分。

© www.soinside.com 2019 - 2024. All rights reserved.