起因

sealer 的 Makefile 设计过于单一和简陋,构建脚本(build.sh) 过于陈旧和厚重,我们可以通过一些设计方案来对 Makefile 和 build.sh 进行设计以及改进,让它们看上去很友好。

Makefile 的重构设计到很多的改变,包括一些模块的微调和 CICD actions 的变化,这些都会涉及到,也会慢慢设计,为此,之前我提过一个 RFC,移步到 → https://github.com/sealerio/sealer/issues/2148

案例

<aside> ❓ 是否有相同的案例,或者经验?

</aside>

这是有的,在网易的 horizoncd 社区中,我成功设计了一套完整的 Makefile 流程并且可以使用。并且帮助他们改进了贡献者文档。在它们的项目中,我们能找到一套已经实现的方案,并且提出了设计文稿:https://github.com/horizoncd/horizon/issues/100:

GitHub - horizoncd/horizon: Production-Grade GitOps CD PlatForm For CloudNative Applications, MiddleWares, etc.

🎯 相比较 horizon,sealer 的设计有哪些危险信号:

image/README.md at ed2844ccc615a447b98344d1bbefca61b3cb7749 · mtrmac/image

这样提高了编译和测试的难度,经过调研,我选择的测试方案是 junit-report ,在本地使用 tmp 临时目录作为缓存,提高覆盖率测试速度。

模块方案

迁移目录 version/version.go → pkg/version/version.go

hack/ 改名为 scripts/

这些文件的作用如下: