გადადით შინაარსზე

დირექტორიები

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

გამოიყენება:

  • Plugins: ჩამოტვირთული და კომპილირებული პლაგინების ქეში
  • ProjectDescriptionHelpers: კომპილირებული პროექტის აღწერის დამხმარეები
  • Manifests: ქეშირებული მანიფესტის ფაილები
  • Projects: გენერირებული ავტომატიზაციის პროექტის ქეში
  • EditProjects: edit ბრძანების ქეში
  • Runs: ტესტების და ბილდების გაშვების ანალიტიკური მონაცემები
  • Binaries: ბილდის არტეფაქტების ბინარები (არ არის გაზიარებადი გარემოებს შორის)
  • SelectiveTests: შერჩევითი ტესტირების ქეში

მაგალითი:

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

გამოიყენება:

  • Sessions: სესიის ლოგები და ქსელური ჩანაწერები (sessions/{uuid}/)
  • Locks: ავტორიზაციის ბლოკირების ფაილები ({handle}.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-ისთვის სპეციფიკური ცვლადი (მაგ., TUIST_XDG_CONFIG_HOME)
  2. სტანდარტული XDG ცვლადი (მაგ., XDG_CONFIG_HOME)
  3. ნაგულისხმები მდებარეობა (მაგ., ~/.config/tuist)

ეს საშუალებას გაძლევთ:

  • გამოიყენოთ სტანდარტული XDG ცვლადები ყველა თქვენი აპლიკაციის თანმიმდევრულად ორგანიზებისთვის
  • გადაფაროთ Tuist-ისთვის სპეციფიკური ცვლადებით, როდესაც 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