注:GitHub Enterprise Server 2.22 上的 GitHub Actions 支持是有限的公测版。 测试已结束。 GitHub Actions 现在一般可用于 GitHub Enterprise Server 3.0 或更新版本。 更多信息请参阅 GitHub Enterprise Server 3.0 发行说明。
- 有关升级到 GitHub Enterprise Server 3.0 或更新版本的更多信息,请参阅“升级 GitHub Enterprise Server”。
- 有关在升级后配置 GitHub Actions 的更多信息,请参阅 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
目录中。
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。
# 此工作流使用未经 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
。
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 build
和 swift test
:
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