Skip to content

Traducción 🌍

Traduce o mejora la traducción de esta página.

Contribuye

Directorios

Tuist organiza sus archivos a través de varios directorios en tu sistema, siguiendo la XDG Base Directory Specification. Esto proporciona una forma limpia y estándar de gestionar los archivos de configuración, caché y estado.

Variables de entorno compatibles

Tuist admite tanto variables XDG estándar como variantes prefijadas específicas de Tuist. Las variantes específicas de Tuist (prefijadas con TUIST_) tienen preferencia, lo que te permite configurar Tuist por separado de otras aplicaciones.

Directorio de configuración

Variables de entorno:

  • TUIST_XDG_CONFIG_HOME (tiene prioridad)
  • XDG_CONFIG_HOME

Por defecto: ~/.config/tuist

Se utiliza para:

  • Credenciales del servidor (credentials/{host}.json)

Por ejemplo:

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

Directorio caché

Variables de entorno:

  • TUIST_XDG_CACHE_HOME (tiene prioridad)
  • XDG_CACHE_HOME

Por defecto: ~/.cache/tuist

Se utiliza para:

  • Plugins: Caché de plugins descargados y compilados
  • ProjectDescriptionHelpers: Ayudantes de descripción de proyectos compilados
  • Manifiestos: Archivos de manifiesto en caché
  • Proyectos: Caché del proyecto de automatización generado
  • EditProjects: Caché para el comando de edición
  • Ejecuta: Prueba y construye datos analíticos de ejecución
  • Binarios: Binarios de artefactos de construcción (no compartibles entre entornos)
  • Pruebas selectivas: Caché de pruebas selectivas

Por ejemplo:

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

Directorio estatal

Variables de entorno:

  • TUIST_XDG_STATE_HOME (tiene prioridad)
  • XDG_STATE_HOME

Por defecto: ~/.local/state/tuist

Se utiliza para:

  • Registros: Archivos de registro (logs/{uuid}.log)
  • Bloqueos: Archivos de bloqueo de autenticación ({handle}.sock)

Por ejemplo:

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

Orden de precedencia

Al determinar qué directorio utilizar, Tuist comprueba las variables de entorno en el siguiente orden:

  1. Variable específica de Tuist (por ejemplo, TUIST_XDG_CONFIG_HOME)
  2. Variable XDG estándar (por ejemplo, XDG_CONFIG_HOME)
  3. Ubicación por defecto (por ejemplo, ~/.config/tuist)

Esto te permite:

  • Utiliza variables XDG estándar para organizar todas tus aplicaciones de forma coherente
  • Sustituye con variables específicas de Tuist cuando necesites diferentes ubicaciones para Tuist
  • Confiar en valores por defecto sensibles sin ninguna configuración

Casos de uso común

Aislar Tuist por proyecto

Tal vez quieras aislar la caché y el estado de Tuist por proyecto:

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"

Entornos CI/CD

En entornos CI, es posible que desee utilizar directorios temporales:

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

Depuración con directorios aislados

Al depurar problemas, es posible que desee hacer borrón y cuenta nueva:

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.