Skip to main content

Выпуск GitHub AE сейчас ограничен.

Создание и тестирование для Swift

Вы можете создать рабочий процесс непрерывной интеграции для сборки и тестирования проекта Swift.

Введение

В этом руководстве описано, как создавать и тестировать пакет Swift.

Чтобы создать и протестировать проект Swift на платформе GitHub AE, требуются необходимые зависимости Swift. Размещенные в В локальных средствах выполнения следует установить требуемое программное обеспечение. Дополнительные сведения о локальных запусках см. в разделе "Размещение собственных средств выполнения".

Предварительные условия

Вы уже должны быть знакомы с синтаксисом YAML и его использованием с GitHub Actions. Дополнительные сведения см. в разделе "Синтаксис рабочего процесса для GitHub Actions".

Рекомендуется иметь базовое представление о пакетах Swift. Дополнительные сведения см. в статье Пакеты Swift документации Apple для разработчиков.

Использование начального рабочего процесса Swift

GitHub предоставляет начальный рабочий процесс Swift, который должен работать для большинства проектов Swift. В этом руководстве приведены примеры настройки начального рабочего процесса. Дополнительные сведения см. в разделе Начальный рабочий процесс Swift.

Чтобы быстро приступить к работе, добавьте начальный рабочий процесс в каталог .github/workflows своего репозитория.

YAML
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 в матрице.

YAML

# Этот рабочий процесс использует действия, которые не сертифицированы 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.

YAML
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 в задании:

YAML
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