背景

由于项目组选择采用 Electron 构建跨平台客户端, 因此存在一个问题就是如何利用 CI/CD 进行自动构建与发布. 当前内部使用 Jenkins 进行自动构建, 但 Jenkins 仍需要 macOS 平台以便构建 DMG 包进行分发. 因此在不考虑实体机的情况下, 最便捷的方案便是可以能创建一台 macOS 的虚拟机了, 通过虚拟机可以方便地复制构建环境从而不和任意硬件货环境绑定.

但当前的问题一是默认情况下 CentOS 8 下提供的 4.2.0 版本的 QEMU 比较老了, 另一个问题则是 RHEL 在分发的时候移除了相当多的 QEMU 特性, 无法直接创建 macOS 虚拟机, 因此我们需要手动修改 QEMU 的代码并自行构建 RPM 包修复这两个问题.