{"meta":{"title":"构建和测试 Swift","intro":"了解如何创建持续集成 (CI) 工作流来构建和测试 Swift 项目。","product":"GitHub Actions","breadcrumbs":[{"href":"/zh/actions","title":"GitHub Actions"},{"href":"/zh/actions/tutorials","title":"教程"},{"href":"/zh/actions/tutorials/build-and-test-code","title":"构建和测试代码"},{"href":"/zh/actions/tutorials/build-and-test-code/swift","title":"Swift"}],"documentType":"article"},"body":"# 构建和测试 Swift\n\n了解如何创建持续集成 (CI) 工作流来构建和测试 Swift 项目。\n\n## 简介\n\n本指南介绍如何构建和测试 Swift 包。\n\nGitHub托管的运行器带有预装软件的工具缓存，Ubuntu 和 macOS 运行器包括用于构建 Swift 包的依赖项。 有关最新软件和 Swift 和 Xcode 预装版本的完整列表，请参阅 [GitHub 托管的运行程序](/zh/actions/using-github-hosted-runners/about-github-hosted-runners#supported-software)。\n\n## Prerequisites\n\n您应该已经熟悉 YAML 语法及其如何与 GitHub Actions 结合使用。 有关详细信息，请参阅“[GitHub Actions 的工作流语法](/zh/actions/using-workflows/workflow-syntax-for-github-actions)”。\n\n我们建议您对 Swift 包有基本的了解。 有关详细信息，请参阅 Apple 开发人员文档中的 [Swift 包](https://developer.apple.com/documentation/xcode/swift-packages)。\n\n## 使用 Swift 工作流模板\n\n若要快速开始使用，请将工作流模板添加到存储库的 `.github/workflows` 目录。\n\nGitHub 提供了一个适用于大多数 Swift 项目的 Swift 工作流模板。 本指南的后续部分提供了如何自定义此工作流模板的示例。\n\n1. 在 GitHub 上，导航到存储库的主页面。1. 在仓库名称下，单击“<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-play\" aria-label=\"play\" role=\"img\"><path d=\"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z\"></path></svg> Actions”\\*\\*\\*\\*。\n\n   ![“github/docs”存储库的选项卡的屏幕截图。 “操作”选项卡以橙色边框突出显示。](/assets/images/help/repository/actions-tab-global-nav-update.png)1. 如果存储库中已有工作流，请单击“新建工作流”。\n\n2. “选择工作流”页面显示一系列建议的工作流模板。 搜索“swift”。\n\n3. 单击“持续集成”\\*\\*\\*\\* 以筛选工作流选择。\n\n4. 在“Swift”工作流上，单击**配置**。\n\n5. 根据需要编辑工作流。 例如更改将会运行工作流的分支。\n\n6. 单击“提交更改”。\n\n工作流文件 `swift.yml` 将添加到存储库的 `.github/workflows` 目录中。\n\n## 指定 Swift 版本\n\n要在 GitHub 托管的运行器上使用特定的预安装 Swift 版本，请使用 `swift-actions/setup-swift` 操作。 此操作从运行器上的工具缓存中查找特定版本的 Swift，并将必要的二进制文件添加到 `PATH`。 这些更改将持续用于作业的其余部分。 有关详细信息，请参阅 [`swift-actions/setup-swift`](https://github.com/marketplace/actions/setup-swift) 操作。\n\n如果使用自托管运行程序，则必须安装所需的 Swift 版本并将它们添加到 `PATH`。\n\n以下示例演示了如何使用 `swift-actions/setup-swift` 操作。\n\n### 使用多个 Swift 版本\n\n你可以将作业配置为在矩阵中使用多个版本的 Swift。\n\n```yaml copy\n\n# 此工作流使用未经 GitHub 认证的操作。\n# 它们由第三方提供，并受\n# 单独的服务条款、隐私政策和支持\n# 文档。\n\n# GitHub 建议将操作固定到提交 SHA。\n# 若要获取较新版本，需要更新 SHA。\n# 还可以引用标记或分支，但该操作可能会更改而不发出警告。\n\nname: Swift\n\non: [push]\n\njobs:\n  build:\n    name: Swift ${{ matrix.swift }} on ${{ matrix.os }}\n    strategy:\n      matrix:\n        os: [ubuntu-latest, macos-latest]\n        swift: [\"5.2\", \"5.3\"]\n    runs-on: ${{ matrix.os }}\n    steps:\n      - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf\n        with:\n          swift-version: ${{ matrix.swift }}\n      - uses: actions/checkout@v6\n      - name: Build\n        run: swift build\n      - name: Run tests\n        run: swift test\n```\n\n### 使用单个特定的 Swift 版本\n\n可将作业配置为使用一个特定版本的 Swift，例如 `5.3.3`。\n\n```yaml copy\n# 此工作流使用未经 GitHub 认证的操作。\n# 它们由第三方提供，并受\n# 单独的服务条款、隐私政策和支持\n# 文档。\nsteps:\n  - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf\n    with:\n      swift-version: \"5.3.3\"\n  - name: Get swift version\n    run: swift --version # Swift 5.3.3\n```\n\n## 构建和测试代码\n\n您可以使用与本地相同的命令来使用 Swift 构建和测试代码。 此示例演示如何在作业中使用 `swift build` 和 `swift test`：\n\n```yaml copy\n# 此工作流使用未经 GitHub 认证的操作。\n# 它们由第三方提供，并受\n# 单独的服务条款、隐私政策和支持\n# 文档。\nsteps:\n  - uses: actions/checkout@v6\n  - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf\n    with:\n      swift-version: \"5.3.3\"\n  - name: Build\n    run: swift build\n  - name: Run tests\n    run: swift test\n```"}