此版本的 GitHub Enterprise 已停止服务 2021-09-23. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

构建和测试 Swift

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

注:GitHub Enterprise Server 2.22 上的 GitHub Actions 支持是有限的公测版。 测试已结束。 GitHub Actions 现在一般可用于 GitHub Enterprise Server 3.0 或更新版本。 更多信息请参阅 GitHub Enterprise Server 3.0 发行说明


注: GitHub 托管的运行器目前在 GitHub Enterprise Server 上不受支持。 您可以在 GitHub 公共路线图 上查看有关未来支持计划的更多信息。

简介

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

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

基本要求

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

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

从 Swift 工作流程模板开始

GitHub 提供了一个 Swift 工作流程模板,该模板应适合大多数 Swift 项目,本指南包括演示如何自定义此模板的示例。 更多信息请参阅 Swift 工作流程模板

要快速开始,请将模板添加到仓库的 .github/workflows 目录中。

YAML
name: Swift

on: [push]

jobs:
  build:

    runs-on: macos-latest

    steps:
      - uses: actions/checkout@v2
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test

指定 Swift 版本

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

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

下面的示例演示了如何使用 fwal/setup-swift 操作。

使用多个 Swift 版本

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

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

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: fwal/setup-swift@d43a564349d1341cd990cfbd70d94d63b8899475
        with:
          swift-version: ${{ matrix.swift }}
      - uses: actions/checkout@
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test

使用单个特定的 Swift 版本

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

YAML
steps:
  - uses: fwal/setup-swift@d43a564349d1341cd990cfbd70d94d63b8899475
    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@v2
  - uses: fwal/setup-swift@d43a564349d1341cd990cfbd70d94d63b8899475
    with:
      swift-version: "5.3.3"
  - name: Build
    run: swift build
  - name: Run tests
    run: swift test