continuous-integration - 分别使用 BitBake 构建依赖包
问题描述
我们有一系列相关且部分相互依赖的包。它们位于不同的 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 服务器不了解配置管理方面的事情,所以它不能做诸如构建每个 pull-request 之类的事情,更不用说将它报告给 Git 存储库管理器来关闭它上面的 pull-requests .
所以我想开始拆分构建以分别构建每个包,根据需要更新的一些规范拉取依赖项。
但是我该怎么做呢?
我可以加
bitbake -c populate_sdk final-image
到主构建,然后使用 SDK 构建各个组件。然而,这意味着common
在我可以 build 之前必须合并任何更改,并重新构建 SDK libfoo
,libbar
或者在我可以 build 之前必须合并daemon
更改。libbar
libbarex
我是否可以将这些增量构建的结果推送到某种存储库并将它们拉回以构建依赖组件而无需重新构建 SDK?
解决方案
推荐阅读
- apache-spark - 在 spark df、parquet object 和 pandas df 之间转换
- c++ - 函数调用后释放的变量
- c# - 使用操纵杆旋转游戏对象
- html - 单击后如何保持此按钮打开
- python - Plotly Choroplethmapbox 未显示所有多边形
- node.js - 由于节点 gyp 错误,web3 js 未安装
- c# - 如何通过角度 Vector3 旋转尺寸 Vector3?
- excel - ppPasteMetaFilePicture 的 DataType 不会将地图从 Excel 复制到 PowerPoint
- slurm - 如何在 Slurm 中以令人尴尬的方式并行运行?
- html - 是否可以在按下 HTML 网站按钮时向 SQS 队列发送消息?