假设有一个 monorepo,在不同的目录中有几个可独立构建的 python 包,格式如下所示,其中foo
和bar
是可独立构建的。
现在假设有人将代码推送到托管它的 git 存储库,并且代码修订仅存在于bar
包中。如果詹金斯接受了推送,詹金斯有没有办法检测哪个包被改变了,只构建和部署改变的包,例如bar
?
或者,无论推送了哪些更改,让 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