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 系统 中按以下类别组织
- 开发 - 所有配置为使用 main 分支构建的作业
- Swift 5.6 - 所有配置为使用 release/5.6 构建的作业
- 软件包 - 为 main 和 release/5.6 分支创建工具链的作业
- 拉取请求 - 验证来自 GitHub 的拉取请求,然后再合并到 main 中的作业。
用法
您可以通过以下几种方式与 swift.org CI 系统进行交互
- 集成作业状态 - 您可以在 https://ci.swift.org 上查看所有集成作业的构建和测试状态。
- 拉取请求测试 - 当通过拉取请求进行更改时,您的更改将在集成之前进行测试,结果将以内联方式发布回拉取请求。
更多使用文档可以在此处找到。
拉取请求测试
当在拉取请求上审查更改时,Swift 团队的成员将触发 CI 系统进行测试。可以触发在 macOS、Linux 或两个平台上运行的测试。
然后,测试状态以内联方式发布在拉取请求中,显示测试正在进行中。您可以单击“详细信息”链接直接转到正在进行的测试的状态页面。
当测试完成时,该结果也会在拉取请求中更新
如果在测试期间发现问题,您将获得指向失败详情的链接。
期望更改在提交到开发分支之前符合 Swift 项目的质量标准,您有责任修复您的更改发现的问题。如果您的更改破坏了开发分支或发布分支上的构建或测试,您将收到电子邮件通知。
社区参与
Swift 项目欢迎社区就添加对其他配置的支持提出建议。
Swift 社区托管的持续集成
社区成员可以自愿在 Swift 社区托管的持续集成 上为其他平台托管节点,并负责维护主机系统。可以通过在以下位置创建拉取请求来启动新节点:Swift 社区托管的 CI 仓库。有关该过程的更多信息,请参阅 README.md。
Swift 社区托管的 CI 允许将不受支持的平台在个案基础上转移到受支持的平台。根据提供的节点数量,@swift-ci 拉取请求测试也可以与社区托管的 CI 集成。