Bazel:在多存储库环境中处理库

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

我正在寻找有关在多存储库环境中管理库的一些建议。在我工作的公司,我们有两个定制的“构建系统”,老实说,两者都非常糟糕。我接到了改进此设置的艰巨任务。

我们在多存储库环境中运行,其中一些存储库包含库,其他存储库是依赖于这些库的微服务。我们的大部分代码都是用 Python 编写的。以下是我们当前本地环境结构的概述:


├── python_applications
│   ├── APP1
│   │   ├── requirements.txt
│   │   ├── src
│   │   └── test
│   └── APP2
│       ├── requirements.txt
│       ├── src
│       └── test
└── python_libraries
    ├── A
    │   ├── requirements.txt
    │   ├── src
    │   └── test
    └── B
        ├── requirements.txt
        ├── src
        └── test

注:

A, B, APP1, and APP2 are in separate Git repositories.

B depends on A (along with other pip dependencies)

APP1 requires A.

APP2 requires A.

在研究更标准化的解决方案时,我遇到了 Bazel,它看起来很有前途。但是,我可以在以下几点上使用一些指导:

  • APP1和APP2应该有自己的MODULE并且只将BUILD放在A或B中,还是应该有不同的结构?注意:每个“模块”都有一个 requiremets.txt 文件。

  • 如果APP2使用Python 3.11,APP1使用Python 3.8,但两者都依赖于A,我应该如何使用Bazel处理这种情况?

  • 我应该如何在本地开发环境中使用 Bazel,特别是当我需要使用我正在积极修改的库的本地版本时(参考 git_repository(...))?

  • 在 CI/CD 管道中利用 Bazel 生成用于测试、登台和生产的 Docker 映像的最佳方法是什么?

任何学习技巧、见解或资源将不胜感激!

python build continuous-integration microservices bazel
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.