AWS CodeBuild 新增对 macOS 的支持
Amazon 最近宣布其托管的构建服务 AWS CodeBuild 现在支持在 macOS 上构建应用程序。然而,由于苹果的许可要求,开发者必须预留专用的 macOS 设备才能使用这一新功能。
背景与挑战
为 Apple 系统(iOS、iPadOS、watchOS、tvOS 和 macOS)构建、测试、签名和分发应用程序需要使用 Xcode,而 Xcode 只能在 macOS 上运行。尽管在 Mac 实例上运行 CI/CD 管道一直是可行的,但管理和自动化 macOS 机器在过去存在诸多挑战。AWS 首席开发者倡导官 Sébastien Stormacq 指出,准备包含所有必要工具的 Amazon Machine Image (AMI) 是一个主要挑战,特别是在需要多个 macOS 和 Xcode 版本组合的环境中。
AWS CodeBuild 的功能
AWS CodeBuild 是一个持续集成服务,提供预打包的构建环境,支持多种编程语言和工具(如 Apache Maven 和 Gradle)。新推出的 CodeBuild 镜像预装了 macOS 和 Xcode,并支持多种工具和框架,包括 Java、Kotlin、Node.js、Python、Ruby、Rust 和 Swift。
保留容量与成本考量
CodeBuild 的 macOS 构建功能利用今年早些时候引入的保留容量功能,适用于延迟敏感的场景。该服务在运行 macOS 14 Sonoma 的 Apple M2 实例上构建工件。与按需设备不同,保留设备的计费基于设备被保留使用的整个时间段,即使没有构建运行。这种容量保留遵循 Amazon EC2 Mac 的 24 小时最低分配周期,这可能会对构建频率较低的团队或开发者造成成本上的不经济。
区域可用性与准备时间
目前,Mac 构建功能仅在五个区域可用:俄亥俄州、北弗吉尼亚州、俄勒冈州、法兰克福和悉尼。根据 AWS 文档,准备一个 EC2 Mac 实例需要 8-10 分钟。在这段时间内提交的任何构建都将排队,并在机器可用时按顺序运行。
总结
AWS CodeBuild 新增对 macOS 的支持为开发者提供了更便捷的构建和测试环境,但受限于苹果的许可要求和保留容量的成本,这一功能可能不适合所有团队。开发者需要根据自身的构建频率和成本考量来决定是否采用这一新选项。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。