დირექტორიები
Tuist სისტემაში ფაილებს რამდენიმე დირექტორიაში ანაწილებს, XDG Base Directory Specification-ის მიხედვით. ეს უზრუნველყოფს კონფიგურაციის, ქეშის და მდგომარეობის ფაილების მართვის სუფთა, სტანდარტულ გზას.
მხარდაჭერილი გარემოს ცვლადები#
Tuist მხარს უჭერს როგორც სტანდარტულ XDG ცვლადებს, ისე Tuist-ისთვის სპეციფიკურ პრეფიქსიან ვარიანტებს. Tuist-ისთვის სპეციფიკური ვარიანტები (პრეფიქსით TUIST_) აქვთ უპირატესობა, რაც საშუალებას გაძლევთ Tuist სხვა აპლიკაციებისგან ცალკე დააკონფიგურიროთ.
კონფიგურაციის დირექტორია#
გარემოს ცვლადები:
TUIST_XDG_CONFIG_HOME(აქვს უპირატესობა)XDG_CONFIG_HOME
ნაგულისხმები:~/.config/tuist
გამოიყენება:
- სერვერის ავტორიზაციის მონაცემები (
credentials/{host}.json)
მაგალითი:
# 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: შერჩევითი ტესტირების ქეში
მაგალითი:
# 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)
მაგალითი:
# 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 ამოწმებს გარემოს ცვლადებს შემდეგი თანმიმდევრობით:
- Tuist-ისთვის სპეციფიკური ცვლადი (მაგ.,
TUIST_XDG_CONFIG_HOME) - სტანდარტული XDG ცვლადი (მაგ.,
XDG_CONFIG_HOME) - ნაგულისხმები მდებარეობა (მაგ.,
~/.config/tuist)
ეს საშუალებას გაძლევთ:
- გამოიყენოთ სტანდარტული XDG ცვლადები ყველა თქვენი აპლიკაციის თანმიმდევრულად ორგანიზებისთვის
- გადაფაროთ Tuist-ისთვის სპეციფიკური ცვლადებით, როდესაც Tuist-ისთვის სხვა მდებარეობები გჭირდებათ
- ენდოთ გონივრულ ნაგულისხმევებს კონფიგურაციის გარეშე
ტიპური გამოყენების შემთხვევები#
Tuist-ის იზოლირება პროექტის მიხედვით#
შეგიძლიათ Tuist-ის ქეში და მდგომარეობა თითოეული პროექტისთვის იზოლიროთ:
# 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 გარემოებში შეიძლება დროებითი დირექტორიების გამოყენება მოგინდეთ:
# 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
დებაგინგი იზოლირებული დირექტორიებით#
პრობлемების დებაგინგისას შეიძლება სუფთა საწყისი წერტილი დაგჭირდეთ:
# 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