Skip to main content

GitHub AE 目前处于受限版。

构建和测试 Swift

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

简介

本指南介绍如何构建和测试 Swift 包。

要在 GitHub AE上构建和测试 Swift 项目,需要必要的 Swift 依赖项。 必须在自托管运行程序上安装所需的软件。 有关自托管运行程序的详细信息,请参阅“托管您自己的运行器”。

先决条件

您应该已经熟悉 YAML 语法及其如何与 GitHub Actions 结合使用。 有关详细信息,请参阅“GitHub Actions 的工作流语法”。

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

使用 Swift 入门工作流

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

GitHub 提供有 Swift 入门工作流,该工作流应会适用于大多数 Swift 项目。 本指南的后续部分提供了如何自定义入门工作流的示例。

  1. 在 你的企业 上,导航到存储库的主页。

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

    “github/docs”存储库的选项卡的屏幕截图。 “操作”选项卡以橙色边框突出显示。

  3. 如果存储库中已有工作流,请单击“新建工作流”。

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

  5. 单击“持续集成”**** 以筛选工作流选择。

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

    如果未找到“Swift”入门工作流,请将以下工作流代码复制到存储库的 .github/workflows 目录中名为 swift.yml 的新文件。

    YAML
    name: Swift
    
    on:
      push:
        branches: [ "main" ]
      pull_request:
        branches: [ "main" ]
    
    jobs:
      build:
        runs-on: macos-latest
    
        steps:
        - uses: actions/checkout@v4
        - name: Build
          run: swift build -v
        - name: Run tests
          run: swift test -v
    
  7. 根据需要编辑工作流。 例如更改将会运行工作流的分支。

  8. 单击“提交更改”。

指定 Swift 版本

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

如果使用自托管运行程序,则必须安装所需的 Swift 版本并将它们添加到 PATH

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

使用多个 Swift 版本

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

YAML

# 此工作流使用未经 GitHub 认证的操作。
# 它们由第三方提供,并受
# 单独的服务条款、隐私政策和支持
# 文档。

# GitHub 建议将操作固定到提交 SHA。
# 若要获取较新版本,需要更新 SHA。
# 还可以引用标记或分支,但该操作可能会更改而不发出警告。

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