Mason: A declarative build tool on top of Dagger
a year ago
- #devops
- #dagger
- #build-tools
- Mason是基于Dagger构建的声明式构建工具,旨在简化和扩展其使用。
- Dagger当前形态存在样板代码复杂、CLI使用门槛高等挑战,难以大规模部署。
- Mason追求类似Maven'mvn package'的简洁性,为不同项目提供统一CLI体验。
- 受GoReleaser和Kubernetes启发,它为需求相似但参数不同的项目提供声明式配置方案。
- 该工具利用Dagger交互式Shell根据配置文件生成脚本,简化模块编排。
- 采用两阶段plan/apply设计:首阶段生成脚本,次阶段执行。
- Mason继承了Dagger的内置优势:缓存系统、模块化插件、沙箱执行和TUI界面。
- 迁移至Mason需将本地Dagger模块转为YAML配置并整合CI调用,但保留Dagger核心功能。
- 在企业环境中,通过YAML文件实现项目'dagger化',提升可维护性并统一开发者体验。
- 未来可能增强报告功能并深化Dagger集成,使Mason成为Dagger生态的'Docker Compose'。