0

我正在用 Python 开发一个服务,它有一个包作为依赖项。我自己开发了这种依赖关系。
我有一个私有 PyPI 服务器,其中包含主分支中每个提交的工件(轮文件)(对于两个包)。
我想创建一个 CI,它将使用 pip 从私有 PyPI 服务器安装依赖项(因为它比每次都从源代码本身安装更快更容易)。

项目依赖的示例:

包 A 需要包 B
(它们都在私有存储库中,而不是公共包中)。

我的问题是,如果我试图在 B 存储库合并到 master 之后立即在 A 存储库上执行 CI,
私有 PyPI 服务器将没有最新版本的 B(今天有一个 Jenkins 工作是每次合并到 master 后激活并将 B 轮上传到私有 PyPI 服务器,
但需要几分钟才能构建包)。结果是包 A 可能包含旧版本的 B,而不是使用最新版本的 B。

有关如何改进此过程的任何建议?

与直接从 Gitlab 安装相比,从私有 PyPI 安装显着减少了安装时间。

顺便说一句,今天我使用的是 Gitlab 的企业版和 Jenkins。

谢谢

4

1 回答 1

0

您只需要在开始安装 A 之前检查包 B 是否是最新的。因此(在您的 Jenkins 工作中)只需执行一个构建步骤来下载 B 的所有内容,然后下载 A 的所有内容。

于 2021-10-16T21:34:11.973 回答