简介
本指南将向您展示如何构建和测试 Swift 包。
GitHub 托管运行器具有一个工具缓存,其中包含预安装的软件,并且 Ubuntu 和 macOS 运行器包含构建 Swift 包的依赖项。有关最新软件和预安装的 Swift 和 Xcode 版本的完整列表,请参阅“使用 GitHub 托管运行器”。
先决条件
您应该已经熟悉 YAML 语法以及它如何在 GitHub Actions 中使用。有关更多信息,请参阅“GitHub Actions 的工作流语法”。
我们建议您对 Swift 包有基本的了解。有关更多信息,请参阅 Apple 开发人员文档中的“Swift 包”。
使用 Swift 工作流模板
要快速入门,请将工作流模板添加到存储库的 .github/workflows
目录中。
GitHub 提供了一个适用于 Swift 的工作流模板,该模板应该适用于大多数 Swift 项目。本指南的后续部分将提供如何自定义此工作流模板的示例。
-
在 GitHub 上,导航到存储库的主页。
-
在您的存储库名称下,单击 操作.
-
如果您的存储库中已存在工作流,请单击“**新建工作流**”。
-
“选择工作流”页面显示了推荐的工作流模板选择。搜索“swift”。
-
通过单击“**持续集成**”来筛选工作流选择。
-
在“Swift”工作流上,单击“**配置**”。
-
根据需要编辑工作流。例如,更改工作流将运行的分支。
-
单击“**提交更改**”。
swift.yml
工作流文件将添加到存储库的.github/workflows
目录中。
指定 Swift 版本
要在 GitHub 托管运行器上使用特定预安装版本的 Swift,请使用 swift-actions/setup-swift
操作。此操作从运行器上的工具缓存中查找特定版本的 Swift,并将必要的二进制文件添加到 PATH
。这些更改将在作业的剩余时间内持续存在。有关更多信息,请参阅 swift-actions/setup-swift
操作。
如果您使用的是自托管运行器,则必须安装所需的 Swift 版本并将其添加到 PATH
。
以下示例演示了如何使用 swift-actions/setup-swift
操作。
使用多个 Swift 版本
您可以将作业配置为在矩阵中使用多个版本的 Swift。
# This workflow uses actions that are not certified by GitHub. # They are provided by a third-party and are governed by # separate terms of service, privacy policy, and support # documentation. # GitHub recommends pinning actions to a commit SHA. # To get a newer version, you will need to update the SHA. # You can also reference a tag or branch, but the action may change without warning. 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
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# GitHub recommends pinning actions to a commit SHA.
# To get a newer version, you will need to update the SHA.
# You can also reference a tag or branch, but the action may change without warning.
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
。
steps: - uses: swift-actions/setup-swift@65540b95f51493d65f5e59e97dcef9629ddf11bf with: swift-version: "5.3.3" - name: Get swift version run: swift --version # Swift 5.3.3
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 build
和 swift test
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
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