Swift 持续集成

Swift 项目遵循增量开发模型,并利用持续集成 (CI) 测试拉取请求中的更改,作为维护项目稳定性的核心工具。该系统生成发布在 swift.org 上的快照构建版本,并针对活跃分支运行测试。它也用作审查过程的一部分,在提交拉取请求之前对其运行测试。

配置

我们的 持续集成系统Jenkins 提供支持,目前支持在 macOS、Ubuntu 18.04、Ubuntu 20.04、Ubuntu 22.04、CentOS 7 和 Amazon Linux 2 上进行构建和测试。也支持在 iOS、tvOS 和 watchOS 模拟器上进行测试。

作业组织

持续集成作业在 CI 系统 中按以下类别组织

用法

您可以通过以下几种方式与 swift.org CI 系统进行交互

更多使用文档可以在此处找到。

拉取请求测试

当在拉取请求上审查更改时,Swift 团队的成员将触发 CI 系统进行测试。可以触发在 macOS、Linux 或两个平台上运行的测试。

pull request CI trigger

然后,测试状态以内联方式发布在拉取请求中,显示测试正在进行中。您可以单击“详细信息”链接直接转到正在进行的测试的状态页面。

CI Progress

当测试完成时,该结果也会在拉取请求中更新

CI Pass

如果在测试期间发现问题,您将获得指向失败详情的链接。

CI Pass

期望更改在提交到开发分支之前符合 Swift 项目的质量标准,您有责任修复您的更改发现的问题。如果您的更改破坏了开发分支或发布分支上的构建或测试,您将收到电子邮件通知。

社区参与

Swift 项目欢迎社区就添加对其他配置的支持提出建议。

Swift 社区托管的持续集成

社区成员可以自愿在 Swift 社区托管的持续集成 上为其他平台托管节点,并负责维护主机系统。可以通过在以下位置创建拉取请求来启动新节点:Swift 社区托管的 CI 仓库。有关该过程的更多信息,请参阅 README.md

Swift 社区托管的 CI 允许将不受支持的平台在个案基础上转移到受支持的平台。根据提供的节点数量,@swift-ci 拉取请求测试也可以与社区托管的 CI 集成。