改进基于 yocto 的开发的部署时间
Posted
技术标签:
【中文标题】改进基于 yocto 的开发的部署时间【英文标题】:improve deployment time of yocto based development 【发布时间】:2019-12-16 10:34:53 【问题描述】:在我们公司,我们已经切换到 Linux 嵌入式系统(2 个不同的平台)。我们的构建基于 yocto。 不幸的是,我们都对它非常陌生。特别是我对 yocto 内部的协作以及重用其部署 (SDK) 有一些疑问。
我们公司有多个团队参与开发:
-
Team1:维护 yocto 和 Linux 基础系统
Team2:开发公司自己的库,这些库将成为基础系统的一部分(自己的 git 存储库,添加到 yocto recipe)
Team3:开发软件(基于 Linux 基础系统 + 公司自有库)
问题:我们当前的开发工作流程非常缓慢。
例如: 一个小型公司自己的库 LibA 中存在一些错误。
Team2 为 LibA 提交了一些错误修复(小型项目,独立构建大约需要 2 分钟)。 在下一步中,必须有一个 Pull-Request 更新 LibA 的 yocto 配方中的 CommitID(约 15 分钟,包括小型 CI 构建 + 合并检查)。 合并拉取请求后,即可触发发布构建 (CI)。此构建的结果是一个 SDK 和一个 MfgTool(所有平台/变体约 120 分钟)。 现在 Team3 必须下载新的 SDK 并更新其构建以使用新的 SDK(约 5 分钟)。 然后他们触发其软件的发布版本(约 10 分钟),从而生成一个可闪存映像。所以总的来说,LibA 的一个小改动需要大约 2 小时才能被 Team3 集成,另外还需要 15 分钟,我们的测试团队才能使用完整的软件。
为此推荐的标准方法是什么(我认为我们不是唯一遇到此问题的公司)? 我们如何改进 yocto 构建工作流程? 如果 LibA 发生变化,是否有任何方法可以防止必须使用 yocto 构建?非常感谢您的帮助。
【问题讨论】:
我们有同样的工作流程,也许使用可扩展的eSDK 可以减少集成时间? 嗨@Totschi,如果这个或任何答案已经解决了您的问题,请考虑通过单击复选标记接受它。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。 【参考方案1】:我会解决你的主要问题,120m的构建时间似乎很长。
我建议创建使用 Source Mirror , sstate mirror。在晚上做一个构建工作来创建这些内容。以至少具有 8 个内核和 16-32GB 内存的构建机器为例。
【讨论】:
以上是关于改进基于 yocto 的开发的部署时间的主要内容,如果未能解决你的问题,请参考以下文章