Skip to content

Перевод 🌍

Вы можете перевести или улучшить перевод этой страницы.

Внести вклад

Кэш Xcode

Tuist обеспечивает поддержку кэша компиляции Xcode, что позволяет командам обмениваться артефактами компиляции, используя возможности кэширования системы сборки.

Настройка

::: предупреждение РЕКВИЗИТЫ

:::

Если у вас еще нет учетной записи Tuist и проекта, вы можете создать их, выполнив команду:

bash
tuist init

Когда у вас есть файл Tuist.swift, ссылающийся на ваш fullHandle, вы можете настроить кэширование для своего проекта, выполнив команду:

bash
tuist setup cache

Эта команда создает LaunchAgent для запуска локальной службы кэширования при запуске, которую система сборки Swift использует для обмена артефактами компиляции. Эту команду нужно выполнить один раз в локальной и CI-средах.

Чтобы настроить кэш на CI, убедитесь, что вы прошли

аутентификацию.

Настройка параметров сборки Xcode

Добавьте следующие настройки сборки в свой проект Xcode:

COMPILATION_CACHE_ENABLE_CACHING = YES
COMPILATION_CACHE_REMOTE_SERVICE_PATH = $HOME/.local/state/tuist/your_org_your_project.sock
COMPILATION_CACHE_ENABLE_PLUGIN = YES
COMPILATION_CACHE_ENABLE_DIAGNOSTIC_REMARKS = YES

Обратите внимание, что COMPILATION_CACHE_REMOTE_SERVICE_PATH и COMPILATION_CACHE_ENABLE_PLUGIN должны быть добавлены как пользовательские настройки сборки, поскольку они не отображаются непосредственно в пользовательском интерфейсе настроек сборки Xcode:

SOCKET PATH

Путь к сокету будет отображаться при запуске tuist setup cache. Он основан на полном дескрипторе вашего проекта с заменой косых черт на подчеркивания.

Вы также можете указать эти настройки при запуске xcodebuild, добавив следующие флаги, например:

xcodebuild build -project YourProject.xcodeproj -scheme YourScheme \
    COMPILATION_CACHE_ENABLE_CACHING=YES \
    COMPILATION_CACHE_REMOTE_SERVICE_PATH=$HOME/.local/state/tuist/your_org_your_project.sock \
    COMPILATION_CACHE_ENABLE_PLUGIN=YES \
    COMPILATION_CACHE_ENABLE_DIAGNOSTIC_REMARKS=YES

GENERATED PROJECTS

Задавать настройки вручную не нужно, если ваш проект сгенерирован Tuist.

В этом случае достаточно добавить enableCaching: true в файл Tuist.swift:

swift
import ProjectDescription

let tuist = Tuist(
    fullHandle: "your-org/your-project",
    project: .tuist(
        generationOptions: .options(
            enableCaching: true
        )
    )
)

Непрерывная интеграция

Чтобы включить кэширование в среде CI, нужно выполнить ту же команду, что и в локальных средах: tuist setup cache.

Кроме того, необходимо убедиться, что переменная окружения TUIST_TOKEN установлена. Вы можете создать ее, следуя документации

здесь.

Переменная окружения TUIST_TOKEN _ должна_ присутствовать на вашем шаге сборки, но мы рекомендуем установить ее для всего рабочего процесса CI.

Пример рабочего процесса для GitHub Actions может выглядеть следующим образом:

yaml
name: Build

env:
  TUIST_TOKEN: ${{ secrets.TUIST_TOKEN }}

jobs:
  build:
    steps:
      - # Your set up steps...
      - name: Set up Tuist Cache
        run: tuist setup cache
      - # Your build steps

Released under the MIT License.