我们有一组相关的,部分相互依赖的软件包。它们生活在单独的Git存储库中。喜欢:
git@bitbucket.company:common
git@bitbucket.company:libfoo
common
git@bitbucket.company:libbar
common
git@bitbucket.compnay:libbarex
libbar
git@bitbucket.company:daemon
common
final-image
(只是一个图像配方)
libfoo
,libbar
,libbarex
,daemon
当前通过安装Yocto环境,检出所有软件包并使用依赖于所有软件包的映像目标运行bitbake
来构建软件包。签出使用包含特殊逻辑的逻辑完成。那是
git clone https://git.yoctoproject.org/git/poky
git clone -b $BRANCH git@bitbucket.company:common
git clone -b $BRANCH git@bitbucket.company:libfoo
git clone -b $BRANCH git@bitbucket.company:libbar
git clone -b $BRANCH git@bitbucket.company:libbarex
git clone -b $BRANCH git@bitbucket.company:daemon
. poky/oe-init-build-env
../common/add-layers.sh
bitbake final-image
缺点是CI服务器不了解配置管理方面的内容,因此它无法执行构建每个请求请求之类的事情,更不用说将其报告回Git存储库管理器以控制请求了。请求。
因此,我想开始拆分构建以分别构建每个软件包,并根据一些需要根据需要更新的规范提取依赖项。
但是我该怎么做?
我可以添加
bitbake -c populate_sdk final-image
到主版本,然后使用SDK来构建单个组件。但是,这意味着common
中的所有更改都必须合并,然后重新构建SDK,然后才能构建libfoo
,libbar
或daemon
并另外更改为{{1 }}必须先合并,然后才能构建libbar
。
我可以将这些增量构建的结果推送到某种存储库中,然后将它们拉回以构建依赖组件,而不必重新构建SDK吗?