注: GitHub 托管的运行器目前在 GitHub Enterprise Server 上不受支持。 您可以在 GitHub 公共路线图 上查看有关未来支持计划的更多信息。
简介
本指南介绍如何构建和测试 Swift 包。
GitHub 托管的运行器带有预装软件的工具缓存,Ubuntu 和 macOS 运行器包括用于构建 Swift 包的依赖项。 有关最新版软件以及 Swift 和 Xcode 预安装版本的完整列表,请参阅“关于 GitHub 托管的运行器”。
基本要求
您应该已经熟悉 YAML 语法及其如何与 GitHub Actions 结合使用。 更多信息请参阅“GitHub Actions 的工作流程语法”。
我们建议您对 Swift 包有基本的了解。 更多信息请参阅 Apple 开发者文档中的“Swift 包”。
Using the Swift starter workflow
GitHub provides a Swift starter workflow that should work for most Swift projects, and this guide includes examples that show you how to customize this starter workflow. For more information, see the Swift starter workflow.
To get started quickly, add the starter workflow to the .github/workflows
directory of your repository.
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@2040b795e5c453c3a05fcb8316496afc8a74f192
with:
swift-version: ${{ matrix.swift }}
- uses: actions/checkout@v2
- name: Build
run: swift build
- name: Run tests
run: swift test
使用单个特定的 Swift 版本
您可以将作业配置为使用单个特定版本的 Swift,例如 5.3.3
。
steps:
- uses: fwal/setup-swift@2040b795e5c453c3a05fcb8316496afc8a74f192
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@2040b795e5c453c3a05fcb8316496afc8a74f192
with:
swift-version: "5.3.3"
- name: Build
run: swift build
- name: Run tests
run: swift test