gpt4 book ai didi

python - Jenkins 可以在具有多个包的 monorepo 中仅构建一个 python 包吗?

转载 作者:行者123 更新时间:2023-12-01 10:35:22 33 4
gpt4 key购买 nike

假设有一个 monorepo,在不同的目录中包含多个可独立构建的 python 包,格式如下所示,其中 foobar 是可独立构建的。

现在假设有人将代码推送到托管该代码的 git 存储库,并且代码修订仅存在于 bar 包中。如果 Jenkins 接受推送,Jenkins 是否有任何方法可以检测哪个包已更改并仅构建和部署更改的包,例如

或者,无论推送了什么更改,让 Jenkins 重建/重新部署 monorepo 中的所有包是否只是标准做法?

root/
└ src/
├ foo/
│ ├ requirements.txt
│ ├ setup.py
│ └ foo/
│ ├ __init__.py
│ ├ module1.py
│ ├ ...
│ └ moduleN.py
.
.
.
└ bar/
├ requirements.txt
├ setup.py
└ bar/
├ __init__.py
├ module1.py
├ ...
└ moduleN.py

最佳答案

我也一直在找这个。我从 Pinterest 找到了一篇博客文章,他们使用 Pants :

https://medium.com/@Pinterest_Engineering/building-a-python-monorepo-for-fast-reliable-development-be763781f67

在其中一部分他们说:

Pants provides fast, reproducible builds for our packages. Pants performs incremental builds on its targets, so only changed modules are rebuilt which speeds up the build process. Running all the build targets in a virtual envs ensures builds are reproducible.

尽管 Pants 无法在 Windows 上运行,但这对我来说看起来不错。

关于python - Jenkins 可以在具有多个包的 monorepo 中仅构建一个 python 包吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53347466/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com