გენერირებული Xcode პროექტი
ავტომატურად გენერირებული სქემები ავტომატურად მოიცავენ tuist inspect build post-action-ს.
თუ არ გსურთ აგების ინფორმაციის თვალყურის დევნა გენერირებულ სქემებში, გათიშეთ ის buildInsightsDisabled-ის გამოყენებით.
თუ იყენებთ გენერირებულ პროექტებს მორგებული სქემებით, თავად უნდა დაამატოთ post-action. Mise-ისთვის:
let project = Project(
name: "MyProject",
targets: [
// Your targets
],
schemes: [
.scheme(
name: "MyApp",
shared: true,
buildAction: .buildAction(
targets: ["MyApp"],
postActions: [
.executionAction(
title: "Inspect Build",
scriptText: """
$HOME/.local/bin/mise x -C $SRCROOT -- tuist inspect build
""",
target: "MyApp"
)
],
runPostActionsOnFailure: true
),
runAction: .runAction(configuration: "Debug")
)
]
)
თუ არ იყენებთ Mise-ს, უნდა დარწმუნდეთ, რომ tuist ხელმისაწვდომია სქემის გარემოში, რადგან Xcode-ის post-actions არ იღებენ თქვენი shell-ის PATH-ს. Homebrew-ის ინსტალაციებისთვის:
buildAction: .buildAction(
targets: ["MyApp"],
postActions: [
.executionAction(
title: "Inspect Build",
scriptText: """
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
tuist inspect build
""",
target: "MyApp"
)
],
runPostActionsOnFailure: true
)
აგების ინფორმაცია CI-ში#
CI-ში აგების ინფორმაციის თვალყურის სადევნად, დარწმუნდით, რომ CI არის აუთენტიფიცირებული.
Xcodebuild-ზე დაფუძნებული CI-ისთვის თქვენ უნდა:
- გამოიყენოთ
tuist xcodebuild, როდესაც იწვევთxcodebuildქმედებებს. - დაამატოთ
-resultBundlePathთქვენსxcodebuildბრძანებაში.
-resultBundlePath-ის გარეშე, საჭირო აქტივობის ლოგები და შედეგების ბანდლები არ გენერირდება და tuist inspect build ვერ შეძლებს აგების ანალიზს.
მანქანის მეტრიკები#
აგების ინფორმაცია შეიძლება მოიცავდეს მანქანის დონის შესრულების მეტრიკებს (CPU, მეხსიერება, ქსელი და დისკის გამოყენება), რომლებიც აღიბეჭდება აგების დროს. ამის ჩასართავად, დააყენეთ მსუბუქი ფონური დემონი, რომელიც უწყვეტად იღებს სისტემის მეტრიკებს:
tuist setup insights
ეს აწარმოებს ლოკალურ დემონს, რომელიც ფონურად იღებს მეტრიკებს. მონაცემები ავტომატურად იჭერება tuist inspect build-ის მიერ და იტვირთება აგების ანგარიშთან ერთად.
გაუშვით tuist setup insights თქვენს CI მანქანებზე აგებამდე, რათა ასევე აღიბეჭდოს მანქანის მეტრიკები.
მანქანის მეტრიკების შეგროვების შესაჩერებლად, გაუშვით:
tuist teardown insights
ეს ტვირთავს დემონის LaunchAgent-ს, აშორებს მის plist-ს და შლის შეგროვებულ მეტრიკებსა და დემონის ლოგებს ~/.local/state-დან, ასე რომ ფონზე არაფერი რჩება გაშვებული.
მორგებული მეტამონაცემები#
შეგიძლიათ დააკავშიროთ მეტამონაცემები აგებებთან გარემოს ცვლადების გამოყენებით ფილტრაციის გასაუმჯობესებლად.
გარემოს ცვლადები#
| ცვლადი | ფორმატი | აღწერა |
|---|---|---|
TUIST_BUILD_TAGS | მძიმით გამოყოფილი | მრავალი ტეგი ერთ ცვლადში. |
TUIST_BUILD_VALUE_* | ერთი მნიშვნელობა | ღირებულებათა წყვილი, სადაც სუფიქსი არის გასაღები. |
მაგალითები#
დააყენეთ ეს მნიშვნელობები CI-ში ან თქვენს shell-ში აგების გამოძახებამდე:
export TUIST_BUILD_TAGS="nightly,ios-team,release-candidate"
export TUIST_BUILD_VALUE_TICKET="PROJ-1234"
export TUIST_BUILD_VALUE_PR_URL="https://github.com/myorg/myrepo/pull/123"