Примечание. В GitHub Enterprise Server в настоящее время не поддерживаются средства выполнения тестов, размещенные в GitHub. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.
Введение
В этом руководстве описано, как создавать и тестировать пакет Swift.
GitHub средства выполнения тестов имеют кэш инструментов с предварительно установленным программным обеспечением, а средства выполнения тестов Ubuntu и macOS включают в себя зависимости для создания пакетов Swift. Полный список актуального программного обеспечения и предварительно установленных версий Swift и Xcode см. в разделе "Using GitHub-hosted runners".
Предварительные условия
Вы уже должны быть знакомы с синтаксисом YAML и его использованием с GitHub Actions. Дополнительные сведения см. в разделе "Синтаксис рабочего процесса для GitHub Actions".
Рекомендуется иметь базовое представление о пакетах Swift. Дополнительные сведения см. в статье Пакеты Swift документации Apple для разработчиков.
Использование начального рабочего процесса Swift
GitHub предоставляет начальный рабочий процесс Swift, который должен работать для большинства проектов Swift. В этом руководстве приведены примеры настройки начального рабочего процесса. Дополнительные сведения см. в разделе Начальный рабочий процесс Swift.
Чтобы быстро приступить к работе, добавьте начальный рабочий процесс в каталог .github/workflows
своего репозитория.
name: Swift on: [push] jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Build run: swift build - name: Run tests run: swift test
name: Swift
on: [push]
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: swift build
- name: Run tests
run: swift test
Указание версии Swift
Чтобы использовать конкретную предварительно установленную версию Swift в размещенном в GitHub средстве выполнения тестов, примените действие swift-actions/setup-swift
. Это действие находит определенную версию Swift из кэша инструментов в средстве выполнения тестов и добавляет необходимые двоичные файлы в переменную PATH
. Эти изменения будут сохранены для остальной части задания. Дополнительные сведения см. в описании действия swift-actions/setup-swift
.
При использовании локального средства выполнения тестов необходимо установить нужные версии Swift и добавить их в PATH
.
В приведенных ниже примерах показано использование действия swift-actions/setup-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@v4 - 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@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