Skip to content

Перевод 🌍

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

Внести вклад

Справочники

Tuist организует свои файлы в нескольких каталогах в вашей системе, следуя спецификации XDG Base Directory Specification. Это обеспечивает чистый, стандартный способ управления файлами конфигурации, кэша и состояния.

Поддерживаемые переменные окружения

Tuist поддерживает как стандартные переменные XDG, так и специфические для Tuist варианты с префиксом. Варианты, специфичные для Tuist (с префиксом TUIST_), имеют приоритет, что позволяет настраивать Tuist отдельно от других приложений.

Каталог конфигурации

Переменные среды:

  • TUIST_XDG_CONFIG_HOME (имеет приоритет)
  • XDG_CONFIG_HOME

По умолчанию: ~/.config/tuist

Используется для:

  • Учетные данные сервера (credentials/{host}.json)

Пример:

bash
# Set Tuist-specific config directory
export TUIST_XDG_CONFIG_HOME=/custom/config
tuist auth login

# Or use standard XDG variable
export XDG_CONFIG_HOME=/custom/config
tuist auth login

Каталог кэша

Переменные среды:

  • TUIST_XDG_CACHE_HOME (имеет приоритет)
  • XDG_CACHE_HOME

По умолчанию: ~/.cache/tuist

Используется для:

  • Плагины: Загруженный и скомпилированный кэш плагинов
  • ProjectDescriptionHelpers: Скомпилированные помощники для описания проектов
  • Манифесты: Кэшированные файлы манифеста
  • Проекты: Сгенерированный кэш проекта автоматизации
  • EditProjects: Кэш для команды редактирования
  • Запуски: тестирование и создание аналитических данных.
  • Бинарные файлы: Двоичные файлы артефактов сборки (не подлежат совместному использованию в разных средах)
  • Выборочные тесты: Кэш для выборочного тестирования

Пример:

bash
# Set Tuist-specific cache directory
export TUIST_XDG_CACHE_HOME=/tmp/tuist-cache
tuist cache

# Or use standard XDG variable
export XDG_CACHE_HOME=/tmp/cache
tuist cache

Государственный справочник

Переменные среды:

  • TUIST_XDG_STATE_HOME (имеет приоритет)
  • XDG_STATE_HOME

По умолчанию: ~/.local/state/tuist

Используется для:

  • Журналы: Файлы журналов (logs/{uuid}.log)
  • Замки: Файлы блокировки аутентификации ({ дескриптор}.sock)

Пример:

bash
# Set Tuist-specific state directory
export TUIST_XDG_STATE_HOME=/var/log/tuist
tuist generate

# Or use standard XDG variable
export XDG_STATE_HOME=/var/log
tuist generate

Порядок старшинства

Определяя, какой каталог использовать, Tuist проверяет переменные окружения в следующем порядке:

  1. Специфическая для Туиста переменная (например, TUIST_XDG_CONFIG_HOME).
  2. Стандартная переменная XDG (например, XDG_CONFIG_HOME).
  3. Расположение по умолчанию (например, ~/.config/tuist).

Это позволит вам:

  • Используйте стандартные переменные XDG для последовательной организации всех ваших приложений
  • Переопределите переменные, специфичные для Tuist, если вам нужны разные места для Tuist
  • Полагайтесь на разумные значения по умолчанию без какой-либо настройки

Общие случаи использования

Изолирование Туиста для каждого проекта

Возможно, вы захотите изолировать кэш и состояние Tuist для каждого проекта:

bash
# In your project's .envrc (using direnv)
export TUIST_XDG_CACHE_HOME="$PWD/.tuist/cache"
export TUIST_XDG_STATE_HOME="$PWD/.tuist/state"
export TUIST_XDG_CONFIG_HOME="$PWD/.tuist/config"

Среды CI/CD

В среде CI вы можете захотеть использовать временные каталоги:

yaml
# GitHub Actions example
env:
  TUIST_XDG_CACHE_HOME: /tmp/tuist-cache
  TUIST_XDG_STATE_HOME: /tmp/tuist-state

jobs:
  build:
    runs-on: macos-latest
    steps:
      - uses: actions/checkout@v4
      - run: tuist generate
      - name: Upload logs
        if: failure()
        uses: actions/upload-artifact@v4
        with:
          name: tuist-logs
          path: /tmp/tuist-state/logs/*.log

Отладка с изолированными каталогами

При отладке проблем вам может понадобиться чистый лист:

bash
# Create temporary directories for debugging
export TUIST_XDG_CACHE_HOME=$(mktemp -d)
export TUIST_XDG_STATE_HOME=$(mktemp -d)
export TUIST_XDG_CONFIG_HOME=$(mktemp -d)

# Run Tuist commands
tuist generate

# Clean up when done
rm -rf $TUIST_XDG_CACHE_HOME $TUIST_XDG_STATE_HOME $TUIST_XDG_CONFIG_HOME

Released under the MIT License.