Skip to main content

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

Узнайте, как создать рабочий процесс непрерывной интеграции (CI) для создания и тестирования проекта Swift.

Примечание.

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. В последующих разделах этого руководства приведены примеры настройки этого шаблона рабочего процесса.

  1. На GitHubперейдите на главную страницу репозитория. данных repositories.repositories.actions-tab %} 1. Если в вашем репозитории уже используется рабочий процесс, нажмите кнопку Создать рабочий процесс.

  2. На странице "Выбор рабочего процесса" показан выбор рекомендуемых шаблонов рабочих процессов. Найдите "swift".

  3. Отфильтруйте выбор рабочих процессов, щелкнув "Непрерывная интеграция".

  4. В рабочем процессе 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 -v
    
  5. Измените рабочий процесс по мере необходимости. Например, измените ветвь, в которой будет выполняться рабочий процесс.

  6. Щелкните Зафиксировать изменения.

Указание версии 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@v5
      - name: Build
        run: swift build
      - name: Run tests
        run: swift test

Использование одной определенной версии Swift

Вы можете настроить задание для использования одной конкретной версии Swift, например 5.3.3.

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

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