我正在开发一个需要自定义构建大型库的项目。
通常,这些库依赖项将被上传到工件并命名为 QT6.static.tar.gz 之类的名称。当 gitlab CI/CD 管道启动时,它可以拉取这些依赖项并开始构建。
我现在的情况是我唯一的工具是 gitlab。 gitlab 中的工件似乎与创建它们的管道有着千丝万缕的联系。
我希望我的 CI 工作流程如下:
我可以通过使用容器注册表和 docker 层缓存来复制这一点 - 但这似乎有点做作。或者,这些构建的文件可以存储在 git LFS 中,但我也不喜欢这种解决方案。
在这种情况下,如果您只想使用 GitLab 作为 Artifactory 的直接替代品,您可以使用 Generic Package Registry 而不是 GitLab CI 工件,正如您所指出的,它主要只在以下范围内相关:创建它们的管道(或依赖于这些工件的子管道)。
因此,通过使用通用包注册表,您可以将依赖项上传到包注册表,并确保它们始终可用,无论正在运行的管道(甚至项目)如何 - 基本上就像您的方式一样将在您使用 Artifactory 描述的工作流程中完成。
请记住,默认的文件大小限制为 5GB。此限制可以在自托管的 GitLab 实例上配置,但不能在 gitlab.com 上配置 - 如果您的工件大于此限制,您将需要配置该限制(如果在自托管)或拆分您的存档分成多个部分。