注意
GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。
简介
本指南介绍如何构建和测试 Swift 包。
GitHub托管的运行器带有预装软件的工具缓存,Ubuntu 和 macOS 运行器包括用于构建 Swift 包的依赖项。 有关最新软件和 Swift 和 Xcode 预装版本的完整列表,请参阅 AUTOTITLE。
Prerequisites
您应该已经熟悉 YAML 语法及其如何与 GitHub Actions 结合使用。 有关详细信息,请参阅“AUTOTITLE”。
我们建议您对 Swift 包有基本的了解。 有关详细信息,请参阅 Apple 开发人员文档中的 Swift 包。
使用 Swift 工作流模板
若要快速开始使用,请将工作流模板添加到存储库的 .github/workflows 目录。
GitHub 提供了一个适用于大多数 Swift 项目的 Swift 工作流模板。 本指南的后续部分提供了如何自定义此工作流模板的示例。
-
在 GitHub 上,导航到存储库的主页面。1. 在仓库名称下,单击“ Actions”****。
1. 如果存储库中已有工作流,请单击“新建工作流”。
-
“选择工作流”页面显示一系列建议的工作流模板。 搜索“swift”。
-
单击“持续集成”以筛选工作流选择。
-
在“Swift”工作流上,单击配置。
如果未找到“Swift”工作流模板,请将以下工作流代码复制到存储库的 目录中名为 的新文件。
YAML name: Swift on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v5 - name: Build run: swift build -v - name: Run tests run: swift test -vname: Swift on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v5 - name: Build run: swift build -v - name: Run tests run: swift test -v -
根据需要编辑工作流。 例如更改将会运行工作流的分支。
-
单击“提交更改”。
指定 Swift 版本
要在 GitHub 托管的运行器上使用特定的预安装 Swift 版本,请使用 操作。 此操作从运行器上的工具缓存中查找特定版本的 Swift,并将必要的二进制文件添加到 。 这些更改将持续用于作业的其余部分。 有关详细信息,请参阅 操作。
如果使用自托管运行程序,则必须安装所需的 Swift 版本并将它们添加到 。
以下示例演示了如何使用 操作。
使用多个 Swift 版本
你可以将作业配置为在矩阵中使用多个版本的 Swift。
# 此工作流使用未经 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@v5
- name: Build
run: swift build
- name: Run tests
run: swift test
# 此工作流使用未经 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@v5
- name: Build
run: swift build
- name: Run tests
run: swift test
使用单个特定的 Swift 版本
可将作业配置为使用一个特定版本的 Swift,例如 。
# 此工作流使用未经 GitHub 认证的操作。
# 它们由第三方提供,并受
# 单独的服务条款、隐私政策和支持
# 文档。
steps:
- uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
with:
swift-version: "5.3.3"
- name: Get swift version
run: swift --version # Swift 5.3.3
# 此工作流使用未经 GitHub 认证的操作。
# 它们由第三方提供,并受
# 单独的服务条款、隐私政策和支持
# 文档。
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 构建和测试代码。 此示例演示如何在作业中使用 和 :
# 此工作流使用未经 GitHub 认证的操作。
# 它们由第三方提供,并受
# 单独的服务条款、隐私政策和支持
# 文档。
steps:
- uses: actions/checkout@v5
- uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
with:
swift-version: "5.3.3"
- name: Build
run: swift build
- name: Run tests
run: swift test
# 此工作流使用未经 GitHub 认证的操作。
# 它们由第三方提供,并受
# 单独的服务条款、隐私政策和支持
# 文档。
steps:
- uses: actions/checkout@v5
- uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf
with:
swift-version: "5.3.3"
- name: Build
run: swift build
- name: Run tests
run: swift test