跳至主要内容

构建和测试 Swift

你可以创建一个持续集成 (CI) 工作流来构建和测试你的 Swift 项目。

简介

本指南展示如何构建和测试 Swift 包。

GitHub 托管的运行器具有预安装软件的工具缓存,Ubuntu 和 macOS 运行器包括构建 Swift 包的依赖项。有关最新软件和 Swift 和 Xcode 的预安装版本的完整列表,请参阅 "使用 GitHub 托管的运行器”。

先决条件

你应该已经熟悉 YAML 语法以及如何将其与 GitHub Actions 一起使用。有关更多信息,请参阅 "GitHub Actions 的工作流语法”。

我们建议您对 Swift 包有一个基本的了解。有关更多信息,请参阅 Apple 开发人员文档中的“Swift 包”。

使用 Swift 初学者工作流

要快速入门,请将初学者工作流添加到存储库的 .github/workflows 目录中。

GitHub 为 Swift 提供了一个初学者工作流,该工作流应该适用于大多数 Swift 项目。本指南的后续部分提供了有关如何自定义此初学者工作流的示例。

  1. 在 GitHub.com 上,导航到存储库的主页。

  2. 在存储库名称下,单击 操作.

    Screenshot of the tabs for the "github/docs" repository. The "Actions" tab is highlighted with an orange outline.

  3. 如果您在存储库中已有工作流,请单击新建工作流

  4. “选择工作流”页面显示了一系列推荐的初学者工作流。搜索“swift”。

  5. 通过单击持续集成筛选工作流选择。

  6. 在“Swift”工作流上,单击配置

  7. 根据需要编辑工作流。例如,更改工作流将运行的分支。

  8. 单击提交更改

    swift.yml 工作流文件将添加到存储库的 .github/workflows 目录中。

指定 Swift 版本

要在 GitHub 托管的运行器上使用特定预安装的 Swift 版本,请使用 swift-actions/setup-swift 操作。此操作从运行器上的工具缓存中查找特定版本的 Swift,并将必要的二进制文件添加到 PATH。这些更改将在作业的剩余时间内持续存在。有关更多信息,请参阅 swift-actions/setup-swift 操作。

如果您使用的是自托管运行器,则必须安装所需的 Swift 版本并将其添加到 PATH

以下示例演示了如何使用 swift-actions/setup-swift 操作。

使用多个 Swift 版本

您可以将作业配置为在矩阵中使用多个 Swift 版本。

YAML

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

# GitHub recommends pinning actions to a commit SHA.
# To get a newer version, you will need to update the SHA.
# You can also reference a tag or branch, but the action may change without warning.

name: Swift

on: [push]

jobs:
  build:
    name: Swift ${{ matrix.swift }} on ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
        swift: ["5.2", "5.3"]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
        with:
          swift-version: ${{ matrix.swift }}
      - uses: actions/checkout@v4
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test

使用单个特定 Swift 版本

您可以将作业配置为使用单个特定版本的 Swift,例如 5.3.3

YAML
steps:
  - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
    with:
      swift-version: "5.3.3"
  - name: Get swift version
    run: swift --version # Swift 5.3.3

构建和测试你的代码

你可以使用与你在本地构建和测试代码时相同的命令,使用 Swift。此示例演示如何在作业中使用 swift buildswift test

YAML
steps:
  - uses: actions/checkout@v4
  - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
    with:
      swift-version: "5.3.3"
  - name: Build
    run: swift build
  - name: Run tests
    run: swift test