这个项目能做什么

Freshmaker 是一项服务,旨在依赖项发生变化后自动重建各种软件工件。例如,当 RPM 的 .spec 文件更新或 RPM 通过 Bodhi 推送到稳定版时,它可以重建模块。同样,当容器内的 RPM 更新时,它可以重建容器镜像。该服务提供 REST API 以获取工件重建的信息及其原因,并将这些事件的消息发送到消息总线。 从架构上看,Freshmaker 基于事件-处理器模式。事件是从 dist-git、Koji 和 Bodhi 等其他服务接收的 fedmsg 消息。处理器是使用 Freshmaker 核心提供的高级 API 重建工件的小型类。系统还提供高级 API 来跟踪工件之间的依赖关系,使重建过程更高效可靠。 工作流程包括等待有关工件更新的新 fedmsg 消息,将这些消息解析为 Event 对象,然后使用特定的处理器处理这些事件。这些处理器识别必须重建的工件列表,以树状结构规划重建以确保正确的构建顺序,准备先决条件(如生成更新的 RPM 仓库),最后启动重建。Freshmaker 内置支持常见任务,例如工件及其依赖关系的数据库管理,以及与 Koji 和 ODCS 等系统集成以启动构建。