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 loginDirectorio 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 cacheDirectorio 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 generateOrden de precedencia
Al determinar qué directorio utilizar, Tuist comprueba las variables de entorno en el siguiente orden:
- Variable específica de Tuist (por ejemplo,
TUIST_XDG_CONFIG_HOME) - Variable XDG estándar (por ejemplo,
XDG_CONFIG_HOME) - 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/*.logDepuració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