Примечание.
GitHubразмещенные в данный момент средства выполнения не поддерживаются в GitHub Enterprise Server.
Введение
В этом руководстве описано, как создавать и тестировать пакет Swift.
GitHub, размещенных в runner, имеют кэш средств с предварительно установленным программным обеспечением, а средства запуска Ubuntu и macOS включают зависимости для создания пакетов Swift. Полный список актуального программного обеспечения и предварительно установленных версий Swift и Xcode см. в разделе Средства выполнения тестов, размещенные в GitHub.
Необходимые компоненты
Вы уже должны быть знакомы с синтаксисом YAML и его использованием с GitHub Actions. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
Рекомендуется иметь базовое представление о пакетах Swift. Дополнительные сведения см. в документации разработчика Apple по пакетам Swift .
Использование шаблона рабочего процесса Swift
Чтобы быстро приступить к работе, добавьте шаблон рабочего процесса в .github/workflows каталог репозитория.
GitHub предоставляет шаблон рабочего процесса для Swift, который должен работать для большинства проектов Swift. В последующих разделах этого руководства приведены примеры настройки этого шаблона рабочего процесса.
-
На GitHubперейдите на главную страницу репозитория. данных repositories.repositories.actions-tab %} 1. Если в вашем репозитории уже используется рабочий процесс, нажмите кнопку Создать рабочий процесс.
-
На странице "Выбор рабочего процесса" показан выбор рекомендуемых шаблонов рабочих процессов. Найдите "swift".
-
Отфильтруйте выбор рабочих процессов, щелкнув "Непрерывная интеграция".
-
В рабочем процессе Swift нажмите кнопку "Настроить".
Если вы не найдете шаблон рабочего процесса Swift, скопируйте следующий код рабочего процесса в новый файл, который вызывается
swift.ymlв.github/workflowsкаталоге репозитория.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
Чтобы использовать конкретную предварительно установленную версию 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@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, например 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
# Этот рабочий процесс использует действия, которые не сертифицированы 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. В этом примере показано, как использовать swift build и 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
# Этот рабочий процесс использует действия, которые не сертифицированы 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