使用BitBake分别构建依赖包

时间:2019-05-27 15:05:40

标签: continuous-integration yocto bitbake openembedded

我们有一组相关的,部分相互依赖的软件包。它们生活在单独的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(只是一个图像配方)
    • 取决于libfoolibbarlibbarexdaemon

当前通过安装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,然后才能构建libfoolibbardaemon并另外更改为{{1 }}必须先合并,然后才能构建libbar

我可以将这些增量构建的结果推送到某种存储库中,然后将它们拉回以构建依赖组件,而不必重新构建SDK吗?

0 个答案:

没有答案